Java main() metóda je východiskovým bodom, odkiaľ JVM spustí vykonávanie programu Java. JVM nespustí kód, ak v programe chýba hlavná metóda. Preto je to jedna z najdôležitejších metód Java a jej správne porozumenie je veľmi dôležité.
Kompilátor Java alebo JVM hľadá hlavnú metódu, keď začína vykonávať program Java. Podpis hlavnej metódy musí byť špecifický, aby JVM rozpoznal túto metódu ako svoj vstupný bod. Ak zmeníme signatúru metódy, program sa skompiluje, ale nevykoná sa.
Spustenie programu Java, java.exe sa volá. Java.exe zase zavolá Java Native Interface alebo JNI a načítajú JVM. Java.exe analyzuje príkazový riadok, vygeneruje nové pole String a vyvolá metódu main(). V predvolenom nastavení je hlavné vlákno vždy vlákno bez démona.
Syntax metódy main().
Syntax metódy main() je vždy napísaná takto:
príkaz v uzle js

Príklad
Najbežnejšia pri definovaní metódy main() je uvedená v nižšie uvedenom príklade.
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'); } }> Výkon
I am a Geek>
Každé slovo v public static void main výraz má v JVM význam, ktorý je opísaný nižšie:
1. Verejnosť
Je to Modifikátor prístupu , ktorý určuje, odkiaľ a kto môže pristupovať k metóde. Zverejnením metódy main() ju sprístupníte globálne. Zverejní sa, aby ho JVM mohol vyvolať zvonku triedy, pretože nie je prítomný v aktuálnej triede.
Ak hlavná metóda nie je verejná, jej prístup je obmedzený.
Príklad:
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'); } }>
Výkon
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. Statické
Je to a kľúčové slovo to je, keď sa spája s metódou, čím sa stáva a metóda súvisiaca s triedou . The Hlavná() metóda je statická, takže JVM ju môže vyvolať bez vytvorenie inštancie triedy . To tiež šetrí zbytočné plytvanie pamäťou, ktorú by objekt deklarovaný použil iba na volanie Hlavná() metódou JVM.
Ak sa pokúsite spustiť kód Java, kde main nie je statický, zobrazí sa chyba.
Príklad:
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'); } }>
Výkon
java metóda
Error: Main method is not static in class test, please define the main method as: public static void main(String[] args)>
3. Neplatné
Je to a kľúčové slovo a je zvyknutý špecifikovať, že metóda nevracia nič . Ako Hlavná() metóda nevracia nič, jej návratový typ je neplatné . Hneď ako bude Hlavná() sa ukončí aj program Java. Preto nemá zmysel vracať sa z Hlavná() pretože JVM nemôže nič urobiť so svojou návratovou hodnotou.
Ak hlavná metóda nie je neplatná, dostaneme chybu.
Príklad:
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; } }>
Výkon
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. hlavný
To je názov hlavnej metódy Java . To je identifikátor ktoré JVM hľadá ako východiskový bod programu Java . Nie je to kľúčové slovo.
Ak zmeníme názov počas spúšťania hlavnej metódy, dostaneme chybu.
Príklad:
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'); } }>
Výkon
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. Reťazec[] args
to ukladá príkazový riadok Java argumenty a je to pole typu java.lang.String trieda. Tu je názov poľa String args ale nie je pevne daný a používateľ môže namiesto neho použiť ľubovoľný názov.
Príklad: Proces vykonávania reťazca[]
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); } }>
Výkon
1 2 3>
Okrem vyššie uvedeného podpisu main, môžete použiť public static void main(String args[]) alebo public static void main (String... args) na volanie hlavnej funkcie v jazyku Java. Hlavná metóda sa volá, ak sa jej formálny parameter zhoduje s parametrom poľa reťazcov.
Poznámka: Hlavná metóda je cumpulózna v jazyku Java
Preťaženie metódy main() v jazyku Java
Preťaženie metódy main() je možné v jazyku Java, čo znamená, že v programe môžeme vytvoriť ľubovoľný počet metód main().
Aby sme preťažili metódu main() v Jave, musíme vytvoriť metódu main() s rôznymi parametrami.
obrázok markdown
Príklad:
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); } }> Výkon:
Running main() with no arguments>
Záver
Metóda Java main() je východiskovým bodom programu Java. Je to hlavné telo, ktoré vykonáva JVM a bez metódy main() bez nej nemožno spustiť žiadny program Java.
Uč sa viac: Výukový program Java
Java main() Method - FAQ
Môže byť hlavnou metódou int? Ak nie, prečo?
Nie, hlavnou metódou Java nemôže byť int. Má to dva hlavné dôvody:
- JVM hľadá public static void main(String[] args) pri spustení programu, pretože ide o štandardný podpis pre vstup. Použitie int podpisu by spôsobilo zmätok a problémy s kompatibilitou počas vykonávania programu.
- Neplatný podpis znamená, že hlavná metóda nevráti nič, ale použitie podpisu int znamená, že hlavná funkcia bude musieť vrátiť celé číslo, čo nie je užitočné pre JVM.
Môžeme spustiť program Java bez hlavnej metódy?
Nie, Od JDK7 hlavná metóda je povinná. Kompilátor najprv overí, či je main() prítomný alebo nie. Ak váš program neobsahuje hlavnú metódu, zobrazí sa chybová hlavná metóda, ktorá sa v triede nenachádza.
Ak chcete zistiť viac o téme, pozrite si Je hlavná metóda v jazyku Java povinná? článok.
Môžeme deklarovať metódu main() bez argumentov String[]?
Áno, metódu main() môžeme deklarovať bez argumentov String[]. Aj keď sa vygeneruje chybové hlásenie, ak sa priamo pokúsime spustiť hlavnú metódu v triede ovládača, ako je to uvedené v príklade nižšie.
Nižšie je uvedená správna metóda na napísanie programu bez argumentov typu String[].
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); } }>Výkon
Hello, world!>
Prečo je main void v Jave?
Hlavná metóda slúži ako východiskový bod pre vykonávanie programu v jazyku Java. JVM neočakáva návratovú hodnotu od hlavného, pretože neexistuje žiadny mechanizmus, ktorý by takúto hodnotu prijal alebo spracoval.
rýchle triedenie