logo

Java main() Metode – offentlig statisk void main(String[] args)

Javas main() metode er udgangspunktet, hvorfra JVM starter udførelsen af ​​et Java-program. JVM vil ikke udføre koden, hvis programmet mangler hovedmetoden. Derfor er det en af ​​de vigtigste Java-metoder, og det er meget vigtigt at have en ordentlig forståelse af det.

Java-kompileren eller JVM leder efter hovedmetoden, når den begynder at udføre et Java-program. Signaturen af ​​hovedmetoden skal være på en specifik måde, for at JVM kan genkende denne metode som dens indgangspunkt. Hvis vi ændrer metodens signatur, kompilerer programmet, men afvikles ikke.



Udførelsen af ​​Java-programmet, den java.exe Hedder. Java.exe foretager igen Java Native Interface eller JNI-kald, og de indlæser JVM. Java.exe analyserer kommandolinjen, genererer en ny String-array og påberåber sig main()-metoden. Som standard er hovedtråden altid en ikke-dæmon-tråd.

Syntaks for main() metode

Syntaks for main()-metoden skrives altid som:

hvordan opgraderer jeg java

Java main() Metodesyntaks



Eksempel

Den mest almindelige til at definere main()-metoden er vist i nedenstående eksempel.

Java
// Java Program to demonstrate the // syntax of the main() function class techcodeview.com {  public static void main(String[] args)  {  System.out.println('I am a Geek');  } }>

Produktion
I am a Geek>

Hvert ord i offentlig statisk tomrum hoved sætning har en betydning i JVM, der er beskrevet nedenfor:

1. Offentlig

Det er en Adgangsmodifikator , som specificerer hvorfra og hvem der kan få adgang til metoden. At gøre main()-metoden offentlig gør den globalt tilgængelig. Den offentliggøres, så JVM kan påberåbe den uden for klassen, da den ikke er til stede i den aktuelle klasse.



Hvis hovedmetoden ikke er offentlig, er dens adgang begrænset.

Eksempel:

Java
// Java Program to demonstrate the // use of any other access modifier // other than public class techcodeview.com {  private static void main(String[] args)  {  System.out.println('I am a Geek');  } }>


Produktion

Error: Main method not found in class, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application>

2. Statisk

Det er en søgeord når det er forbundet med en metode, hvilket gør den til en klasserelateret metode . Det hoved() metoden er statisk, så JVM kan påberåbe den uden instansierer klassen . Dette sparer også det unødvendige spild af hukommelse, som ville være blevet brugt af objektet, der kun er deklareret til at kalde hoved() metode af JVM.

Hvis du forsøger at køre Java-kode, hvor main ikke er statisk, får du en fejl.

Eksempel:

Java
// Java Program to demonstrate the // error occurred when we dont use the // static keyword in the main() method class techcodeview.com {  public void main(String[] args)  {  System.out.println('I am a Geek');  } }>


Produktion

formater datoen i java
Error: Main method is not static in class test, please define the main method as: public static void main(String[] args)>

3. Ugyldig

Det er en søgeord og er vant til angive, at en metode ikke returnerer noget . Som hoved() metoden returnerer ikke noget, dens returtype er ugyldig . Så snart hoved() metoden afsluttes, afsluttes Java-programmet også. Derfor giver det ingen mening at vende tilbage fra hoved() metode, da JVM ikke kan gøre noget med sin returværdi af den.

Hvis hovedmetoden ikke er ugyldig, får vi en fejl.

Eksempel:

Java
// Java Program to demonstrate the // error occurred when we dont use the // void return type in the main() method class techcodeview.com {  public static int main(String[] args)  {  System.out.println('I am a Geek');  return 1;  } }>


Produktion

Error: Main method must return a value of type void in class Main, please define the main method as: public static void main(String[] args)>

4. hoved

Det er navnet på Java-hovedmetoden . Det er identifikator som JVM ser efter som Java-programmets udgangspunkt . Det er ikke et nøgleord.

Hvis vi ændrer navnet, mens vi starter hovedmetoden, får vi en fejl.

Eksempel:

c# kode eksempler
Java
// Java Program to demonstrate the // error occurred when we name the // main() method as newmain. class techcodeview.com {  public static void newmain(String[] args)  {  System.out.println('I am a Geek');  } }>


Produktion

Error: Main method not found in class, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application>

5. Streng[] args

Det gemmer Java-kommandolinje argumenter og er en række af typer java.lang.String klasse. Her er navnet på String-arrayet args men det er ikke fast, og brugeren kan bruge et hvilket som helst navn i stedet for det.

Eksempel: Udførelsesproces af streng[]

Java
// Java Program to demonstrate // the working of String[] args // in the main() method class techcodeview.com {  // Commamd-Line Code ->// javac techcodeview.com.java // java techcodeview.com 1 2 3 public static void main(String[] args) { for (String elem : args) System.out.println(elem);  } }>


Produktion

1 2 3>

Bortset fra den ovennævnte signatur af main, kan du bruge public static void main(String args[]) eller public static void main(String… args) at kalde hovedfunktionen i Java. Hovedmetoden kaldes, hvis dens formelle parameter matcher den for en række strenge.

Bemærk: Hovedmetoden er samlet i Java

Overbelaster main()-metoden i Java

Overbelastning af main()-metoden er mulig i Java, hvilket betyder, at vi kan oprette et hvilket som helst antal main()-metoder i et program.

For at overbelaste main()-metoden i Java, skal vi oprette main()-metoden med forskellige parametre.

Eksempel:

Java
public class Main {  public static void main(String[] args) {  if (args.length == 0) {  System.out.println('Running main() with no arguments');  } else if (args.length == 1) {  try {  int value = Integer.parseInt(args[0]);  main(value);  } catch (NumberFormatException e) {  main(args[0]);  }  } else {  // Handle more arguments as needed  }  }  public static void main(int value) {  System.out.println('Running main() with integer argument: ' + value);  }  public static void main(String message) {  System.out.println('Running main() with string argument: ' + message);  } }>

Produktion:

Running main() with no arguments>

Konklusion

Java main()-metoden er udgangspunktet for et Java-program. Det er hovedkroppen, der udføres af JVM, og uden main()-metoden kan intet Java-program køres uden det.

Lær mere: Java tutorial

Java main()-metode - ofte stillede spørgsmål

Kan hovedmetoden være int? Hvis ikke, hvorfor?

Nej, Java-hovedmetoden kan ikke være int. Der er to hovedårsager til det:

  1. JVM leder efter public static void main(String[] args) ved start af programafviklingen, da det er standardsignaturen for indtastning. Brug af int-signatur vil forårsage forvirring og kompatibilitetsproblemer under programafvikling.
  2. At have void signatur betyder, at hovedmetoden ikke returnerer noget, men at bruge int signatur betyder, at hovedfunktionen skal returnere heltal, hvilket ikke er nyttigt for JVM.

Kan vi afvikle et Java-program uden hovedmetoden?

Nej, fra JDK7 hovedmetoden er obligatorisk. Compileren vil først bekræfte, om main() er til stede eller ej. Hvis dit program ikke indeholder hovedmetoden, vil du få en fejl hovedmetode, der ikke findes i klassen.

For at tjekke mere om emnet henvises til Er hovedmetoden obligatorisk i Java? artikel.

int til streng java

Kan vi erklære main() metoden uden String[] args?

Ja, vi kan erklære main()-metoden uden String[] args. Selvom det vil generere en fejlmeddelelse, hvis vi direkte forsøger at udføre hovedmetoden inde i driverklassen som gjort i nedenstående eksempel.

Nedenfor er den korrekte metode til at skrive et program uden String args[].

Java
import java.io.*; import javafx.application.Application; abstract class GFG  extends javafx.application.Application {  // static block  static  {  System.out.println('Hello, world!');  System.exit(0);  } }>

Produktion

Hello, world!>

Hvorfor er main void i Java?

Hovedmetoden tjener som udgangspunkt for programudførelse i Java. JVM forventer ikke en returværdi fra hovedafsnittet, fordi der ikke er nogen mekanisme til at modtage eller behandle en sådan værdi.