Javas main() metode er utgangspunktet hvorfra JVM starter kjøringen av et Java-program. JVM vil ikke kjøre koden hvis programmet mangler hovedmetoden. Derfor er det en av de viktigste metodene for Java, og det er veldig viktig å ha en riktig forståelse av den.
Java-kompilatoren eller JVM ser etter hovedmetoden når den begynner å kjøre et Java-program. Signaturen til hovedmetoden må være på en spesifikk måte for at JVM skal gjenkjenne den metoden som inngangspunktet. Hvis vi endrer signaturen til metoden, kompilerer programmet, men kjører ikke.
Utførelsen av Java-programmet, den java.exe er kalt. Java.exe gjør i sin tur Java Native Interface eller JNI-anrop, og de laster inn JVM. Java.exe analyserer kommandolinjen, genererer en ny String-array og påkaller main()-metoden. Som standard er hovedtråden alltid en ikke-daemon-tråd.
Syntaks for main() Metode
Syntaks for main()-metoden skrives alltid som:
java arkitektur

Eksempel
Det vanligste i å definere main()-metoden er vist i eksemplet nedenfor.
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'); } }> Produksjon
I am a Geek>
Hvert ord i offentlig statisk tomrom hoved uttalelsen har en betydning i JVM som er beskrevet nedenfor:
1. Offentlig
Det er en Tilgangsmodifikator , som spesifiserer hvor og hvem som kan få tilgang til metoden. Å gjøre main()-metoden offentlig gjør den globalt tilgjengelig. Den gjøres offentlig slik at JVM kan påkalle den fra utenfor klassen da den ikke er til stede i den gjeldende klassen.
Hvis hovedmetoden ikke er offentlig, er tilgangen begrenset.
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'); } }>
Produksjon
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økeord det vil si når den er knyttet til en metode, noe som gjør den til en klasserelatert metode . De hoved() metoden er statisk slik at JVM kan påkalle den uten instansierer klassen . Dette sparer også unødvendig sløsing med minne som ville blitt brukt av objektet som kun er deklarert for å kalle hoved() metode av JVM.
Hvis du prøver å kjøre Java-kode der main ikke er statisk, får du en feilmelding.
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'); } }>
Produksjon
søkealgoritmer
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økeord og er vant til spesifiser at en metode ikke returnerer noe . Som hoved() metoden returnerer ikke noe, dens returtype er tomrom . Så snart hoved() metoden avsluttes, avsluttes Java-programmet også. Derfor gir det ingen mening å komme tilbake fra hoved() metoden da JVM ikke kan gjøre noe med returverdien av den.
Hvis hovedmetoden ikke er ugyldig, får vi en feilmelding.
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; } }>
Produksjon
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 den navnet på Java-hovedmetoden . Det er den identifikator som JVM ser etter som startpunktet for Java-programmet . Det er ikke et nøkkelord.
Hvis vi endrer navnet mens vi starter hovedmetoden, får vi en feilmelding.
Eksempel:
hvordan generere tilfeldige tall i javaJava
// 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'); } }>
Produksjon
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. String[] args
Den lagrer Java-kommandolinje argumenter og er en rekke typer java.lang.String klasse. Her er navnet på String-arrayen args men det er ikke løst, og brukeren kan bruke hvilket som helst navn i stedet for det.
Eksempel: Utførelsesprosess for 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); } }>
Produksjon
1 2 3>
Bortsett fra den ovennevnte signaturen til hoved, kan du bruke public static void main(String args[]) eller offentlig statisk tomrom hoved(String… args) å kalle hovedfunksjonen i Java. Hovedmetoden kalles hvis dens formelle parameter samsvarer med en rekke strenger.
Merk: Hovedmetoden er akkumulerende i Java
Overbelaster main()-metoden i Java
Overbelastning av main()-metoden er mulig i Java, noe som betyr at vi kan lage et hvilket som helst antall main()-metoder i et program.
For å overbelaste main()-metoden i Java, må vi lage main()-metoden med forskjellige parametere.
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); } }> Produksjon:
Running main() with no arguments>
Konklusjon
Java main()-metoden er utgangspunktet for et Java-program. Det er hoveddelen som kjøres av JVM, og uten main()-metoden kan ingen Java-program kjøres uten den.
Lære mer: Java-opplæring
Java main() Metode- Vanlige spørsmål
Kan hovedmetoden være int? Hvis ikke, hvorfor?
Nei, Java-hovedmetoden kan ikke være int. Det er to hovedårsaker til det:
- JVM ser etter public static void main(String[] args) når du starter programkjøringen da det er standardsignaturen for oppføring. Bruk av int-signatur vil forårsake forvirring og kompatibilitetsproblemer mens programmet kjøres.
- Å ha ugyldig signatur betyr at hovedmetoden ikke vil returnere noe, men å bruke int-signatur betyr at hovedfunksjonen må returnere heltall, noe som ikke er nyttig for JVM.
Kan vi kjøre et Java-program uten hovedmetoden?
Nei, Fra JDK7 hovedmetoden er obligatorisk. Kompilatoren vil først bekrefte om main() er til stede eller ikke. Hvis programmet ditt ikke inneholder hovedmetoden, får du en feilmelding som ikke finnes i klassen.
For å sjekke mer om emnet, se Er hovedmetode obligatorisk i Java? artikkel.
int til streng java
Kan vi deklarere main()-metoden uten String[] args?
Ja, vi kan deklarere main()-metoden uten String[] args. Selv om det vil generere en feilmelding hvis vi direkte prøver å utføre hovedmetoden i driverklassen som gjort i eksemplet nedenfor.
Nedenfor er den riktige metoden for å skrive et program uten String args[].
Javaimport java.io.*; import javafx.application.Application; abstract class GFG extends javafx.application.Application { // static block static { System.out.println('Hello, world!'); System.exit(0); } }>Produksjon
Hello, world!>
Hvorfor er main void i Java?
Hovedmetoden fungerer som utgangspunkt for programkjøring i Java. JVM forventer ikke en returverdi fra hovedsiden fordi det ikke er noen mekanisme for å motta eller behandle en slik verdi.