„Java“ pagrindinis () metodas yra atskaitos taškas, nuo kurio JVM pradeda vykdyti Java programą. JVM nevykdys kodo, jei programai trūksta pagrindinio metodo. Taigi, tai yra vienas iš svarbiausių „Java“ metodų, ir labai svarbu tinkamai jį suprasti.
„Java“ kompiliatorius arba JVM ieško pagrindinio metodo, kai pradeda vykdyti „Java“ programą. Pagrindinio metodo parašas turi būti tam tikru būdu, kad JVM atpažintų tą metodą kaip įėjimo tašką. Jei pakeičiame metodo parašą, programa kompiliuoja, bet nevykdo.
„Java“ programos vykdymas, java.exe vadinamas. Java.exe savo ruožtu atlieka Java Native Interface arba JNI skambučius ir įkelia JVM. Java.exe analizuoja komandų eilutę, sugeneruoja naują eilučių masyvą ir iškviečia main() metodą. Pagal numatytuosius nustatymus pagrindinė gija visada yra ne demono gija.
Pagrindinio() metodo sintaksė
Metodo main() sintaksė visada rašoma taip:
įdėti į klaviatūrą

Pavyzdys
Dažniausiai apibrėžiant main() metodą parodyta toliau pateiktame pavyzdyje.
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'); } }> Išvestis
I am a Geek>
Kiekvienas žodis viešas statinis tuštumas pagrindinis teiginys turi reikšmę JVM, aprašytą toliau:
1. Viešas
Tai yra Prieigos modifikatorius , kuriame nurodoma, iš kur ir kas gali pasiekti metodą. Paviešinus main() metodą, jis tampa prieinamas visame pasaulyje. Jis paskelbiamas viešai, kad JVM galėtų jį iškviesti iš klasės ribų, nes jos nėra dabartinėje klasėje.
Jei pagrindinis metodas nėra viešas, jo prieiga yra apribota.
Pavyzdys:
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'); } }>
Išvestis
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. Statinis
Tai yra raktažodį tai yra, kai jis yra susijęs su metodu, todėl jis a su klase susijęs metodas . The pagrindinis () metodas yra statinis, todėl JVM gali jį iškviesti be jo instantiatyvus klasę . Tai taip pat taupo bereikalingą atminties švaistymą, kurią būtų naudojęs objektas, deklaruotas tik skambindamas pagrindinis () JVM metodą.
Jei bandysite paleisti Java kodą, kur pagrindinis nėra statinis, gausite klaidą.
Pavyzdys:
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'); } }>
Išvestis
verilog visada
Error: Main method is not static in class test, please define the main method as: public static void main(String[] args)>
3. Tuščia
Tai yra raktažodį ir yra įpratęs nurodykite, kad metodas nieko negrąžina . Kaip ir pagrindinis () metodas nieko negrąžina, jo grąžinimo tipas yra tuštuma . Kai tik pagrindinis () metodas baigiasi, „Java“ programa taip pat baigiasi. Vadinasi, nėra prasmės grįžti iš pagrindinis () metodas, nes JVM negali nieko padaryti su jo grąžinama verte.
Jei pagrindinis metodas nėra negaliojantis, gausime klaidą.
Pavyzdys:
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; } }>
Išvestis
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. pagrindinis
Tai yra pagrindinio Java metodo pavadinimas . Tai yra identifikatorius kad JVM ieško kaip Java programos pradžios taškas . Tai nėra raktinis žodis.
Jei pakeisime pavadinimą inicijuodami pagrindinį metodą, gausime klaidą.
Pavyzdys:
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'); } }>
Išvestis
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. Styga[] args
Tai saugo Java komandų eilutę argumentai ir yra tipų masyvas java.lang.String klasė. Čia yra eilutės masyvo pavadinimas args bet jis nėra fiksuotas ir vartotojas gali naudoti bet kokį pavadinimą vietoj jo.
Pavyzdys: Stygos vykdymo procesas[]
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); } }>>
Išvestis
... Java
1 2 3>
Be aukščiau nurodyto pagrindinio parašo, galite naudoti public static void main (String args[]) arba viešas statinis tuščias pagrindinis (String… args) iškviesti pagrindinę „Java“ funkciją. Pagrindinis metodas iškviečiamas, jei jo formalus parametras atitinka eilučių masyvo parametrą.
Pastaba: Pagrindinis metodas yra privalomas Java
Perkraunamas pagrindinis() metodas Java programoje
Perkrauti main() metodą galima „Java“, tai reiškia, kad programoje galime sukurti bet kokį main() metodų skaičių.
Norėdami perkrauti main() metodą Java, turime sukurti main() metodą su skirtingais parametrais.
Pavyzdys:
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); } }> Išvestis:
Sužinokite daugiau: Java pamoka
Java main() metodas – DUK
Ar pagrindinis metodas gali būti tarpinis? Jei ne, kodėl?
Ne, pagrindinis Java metodas negali būti int. Yra dvi pagrindinės priežastys:
- JVM ieško public static void main (String[] args) paleidžiant programos vykdymą, nes tai yra standartinis įvedimo parašas. Int parašo naudojimas sukeltų painiavą ir sukeltų suderinamumo problemų vykdant programą.
- Jei parašas negalioja, pagrindinis metodas nieko negrąžins, tačiau naudojant int parašą pagrindinė funkcija turės grąžinti sveikąjį skaičių, o tai nėra naudinga JVM.
Ar galime vykdyti Java programą be pagrindinio metodo?
Ne, Nuo JDK7 pagrindinis metodas yra privalomas. Kompiliatorius pirmiausia patikrins, ar main() yra, ar ne. Jei jūsų programoje nėra pagrindinio metodo, gausite klaidą, kurios pagrindinis metodas nerastas klasėje.
Norėdami sužinoti daugiau apie temą, žr Ar pagrindinis metodas „Java“ yra privalomas? straipsnis.
Ar galime deklaruoti main() metodą be String[] args?
Taip, mes galime deklaruoti main() metodą be String[] args. Nors tai sugeneruos klaidos pranešimą, jei tiesiogiai bandysime vykdyti pagrindinį metodą tvarkyklės klasėje, kaip parodyta toliau pateiktame pavyzdyje.
Žemiau yra teisingas būdas parašyti programą be String args[].
int eilutėjeJavaimport java.io.*; import javafx.application.Application; abstract class GFG extends javafx.application.Application { // static block static { System.out.println('Hello, world!'); System.exit(0); } }>Išvestis
Hello, world!>
Kodėl „Java“ yra pagrindinis tuščias?
Pagrindinis metodas yra programos vykdymo „Java“ atskaitos taškas. JVM nesitiki grąžinimo vertės iš pagrindinės, nes nėra mechanizmo, kaip gauti ar apdoroti tokią vertę.