Java:n main()-menetelmä on lähtökohta, josta JVM käynnistää Java-ohjelman suorittamisen. JVM ei suorita koodia, jos ohjelmasta puuttuu päämenetelmä. Siksi se on yksi Javan tärkeimmistä menetelmistä, ja sen asianmukainen ymmärtäminen on erittäin tärkeää.
Java-kääntäjä tai JVM etsii päämenetelmää, kun se aloittaa Java-ohjelman suorittamisen. Päämenetelmän allekirjoituksen on oltava tietyllä tavalla, jotta JVM tunnistaa kyseisen menetelmän aloituskohtakseen. Jos muutamme menetelmän allekirjoitusta, ohjelma kääntää, mutta ei suorita.
Java-ohjelman suoritus, java.exe kutsutaan. Java.exe puolestaan soittaa Java Native Interface- tai JNI-kutsuja ja lataa JVM:n. Java.exe jäsentää komentorivin, luo uuden merkkijonotaulukon ja kutsuu main()-menetelmän. Oletuksena pääsäie on aina ei-daemon-säie.
Main()-menetelmän syntaksi
Main()-metodin syntaksi kirjoitetaan aina seuraavasti:
Masonin kaava

Esimerkki
Yleisin main()-menetelmän määrittelyssä on esitetty alla olevassa esimerkissä.
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'); } }> Lähtö
I am a Geek>
Jokainen sana julkinen static void main lauseella on merkitys JVM:ssä, joka on kuvattu alla:
1. Julkinen
Se on Pääsyn muokkaaja , joka määrittää, mistä ja kuka voi käyttää menetelmää. Main()-menetelmän julkistaminen tekee siitä maailmanlaajuisesti saatavilla. Se julkistetaan, jotta JVM voi kutsua sitä luokan ulkopuolelta, koska sitä ei ole nykyisessä luokassa.
Jos päämenetelmä ei ole julkinen, sen pääsyä on rajoitettu.
Esimerkki:
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'); } }>
Lähtö
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. Staattinen
Se on a avainsana eli kun se liitetään menetelmään, mikä tekee siitä a luokkaan liittyvä menetelmä . The pää() menetelmä on staattinen, joten JVM voi kutsua sitä ilman luokan instantoiminen . Tämä säästää myös turhalta muistin tuhlausta, jota kohde, joka on ilmoitettu vain pää() JVM:n menetelmällä.
Jos yrität ajaa Java-koodia, jossa main ei ole staattinen, saat virheilmoituksen.
Esimerkki:
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'); } }>
Lähtö
algoritmin syvyys ensimmäinen haku
Error: Main method is not static in class test, please define the main method as: public static void main(String[] args)>
3. Tyhjä
Se on a avainsana ja on tottunut määrittää, että menetelmä ei palauta mitään . Kuten pää() menetelmä ei palauta mitään, sen palautustyyppi on mitätön . Heti kun pää() menetelmä päättyy, myös Java-ohjelma päättyy. Siksi ei ole mitään järkeä palata pois pää() menetelmä, koska JVM ei voi tehdä mitään sen palautusarvolla.
Jos päämenetelmä ei ole mitätön, saamme virheilmoituksen.
Esimerkki:
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; } }>
Lähtö
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. pää
Se on Java-päämenetelmän nimi . Se on tunniste jota JVM etsii Java-ohjelman lähtökohta . Se ei ole avainsana.
Jos muutamme nimeä päämenetelmää käynnistettäessä, saamme virheilmoituksen.
Esimerkki:
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'); } }>
Lähtö
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
Se tallentaa Java-komentorivin argumentteja ja se on joukko tyyppejä java.lang.String luokkaa. Tässä on merkkijonotaulukon nimi args mutta se ei ole kiinteä ja käyttäjä voi käyttää mitä tahansa nimeä sen sijaan.
Esimerkki: Merkkijonon suoritusprosessi[]
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); } }>
Lähtö
1 2 3>
Mainitun mainin allekirjoituksen lisäksi voit käyttää julkinen staattinen void main(String args[]) tai julkinen staattinen void main(String… args) kutsua pääfunktiota Javassa. Päämenetelmää kutsutaan, jos sen muodollinen parametri vastaa merkkijonotaulukon parametria.
Huomautus: Päämenetelmä on pakollinen Javassa
amplitudimodulaatio
Main()-menetelmän ylikuormitus Javassa
Main()-menetelmän ylikuormitus on mahdollista Javassa, mikä tarkoittaa, että voimme luoda ohjelmaan kuinka monta main()-metodia tahansa.
Main()-menetelmän ylikuormittamiseksi Javassa meidän on luotava main()-menetelmä erilaisilla parametreilla.
Esimerkki:
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); } }> Lähtö:
Running main() with no arguments>
Johtopäätös
Java main() -menetelmä on Java-ohjelman aloituskohta. Se on JVM:n suorittama päärunko, ja ilman main()-menetelmää Java-ohjelmaa ei voida ajaa ilman sitä.
Lisätietoja: Java opetusohjelma
Java main() -menetelmä - UKK
Voiko päämenetelmä olla int? Jos ei, miksi?
Ei, Java-päämenetelmä ei voi olla int. Siihen on kaksi pääsyytä:
tostring-menetelmä java
- JVM etsii julkinen staattinen void main(String[] args) kun aloitat ohjelman suorittamisen, koska se on syöttämisen vakioallekirjoitus. Int-allekirjoituksen käyttäminen aiheuttaisi sekaannusta ja yhteensopivuusongelmia ohjelman suorittamisen aikana.
- Jos allekirjoitus on mitätön, päämenetelmä ei palauta mitään, mutta int-allekirjoituksen käyttäminen tarkoittaa, että pääfunktion on palautettava kokonaisluku, mikä ei ole hyödyllistä JVM:lle.
Voimmeko suorittaa Java-ohjelman ilman päämenetelmää?
Ei, alkaen JDK7 päämenetelmä on pakollinen. Kääntäjä tarkistaa ensin, onko main() olemassa vai ei. Jos ohjelmasi ei sisällä päämenetelmää, saat virheilmoituksen, jota ei löydy luokasta.
Katso lisätietoja aiheesta Onko päämenetelmä pakollinen Javassa? artikla.
Voimmeko ilmoittaa main()-metodin ilman String[]-argeja?
Kyllä, voimme ilmoittaa main()-metodin ilman String[] argeja. Vaikka se tuottaa virheilmoituksen, jos yritämme suoraan suorittaa päämenetelmän ohjainluokan sisällä alla olevan esimerkin mukaisesti.
Alla on oikea tapa kirjoittaa ohjelma ilman 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); } }>Lähtö
Hello, world!>
Miksi Javalla on main void?
Päämenetelmä toimii lähtökohtana ohjelman suorittamiselle Javassa. JVM ei odota palautusarvoa pääpalvelimelta, koska sillä ei ole mekanismia tällaisen arvon vastaanottamiseksi tai käsittelemiseksi.