Metoda main() Java jest punktem wyjścia, z którego JVM rozpoczyna wykonywanie programu Java. JVM nie wykona kodu, jeśli w programie brakuje głównej metody. Dlatego jest to jedna z najważniejszych metod języka Java i odpowiednie jej zrozumienie jest bardzo ważne.
Kompilator Java lub maszyna JVM szuka metody głównej, gdy rozpoczyna wykonywanie programu Java. Podpis głównej metody musi być wykonany w określony sposób, aby maszyna JVM rozpoznała tę metodę jako swój punkt wejścia. Jeśli zmienimy sygnaturę metody, program się kompiluje, ale nie wykonuje.
Wykonanie programu Java, Java.exe jest nazywany. Z kolei plik Java.exe wykonuje wywołania Java Native Interface lub JNI, które ładują maszynę JVM. Java.exe analizuje wiersz poleceń, generuje nową tablicę String i wywołuje metodę main(). Domyślnie głównym wątkiem jest zawsze wątek inny niż demon.
Składnia metody main().
Składnia metody main() jest zawsze zapisana jako:
naucz się selenu

Przykład
Najczęstszy sposób definiowania metody main() pokazano w poniższym przykładzie.
Jawa // 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'); } }> Wyjście
I am a Geek>
Każde słowo w publiczna statyczna pusta główna instrukcja ma znaczenie w JVM opisane poniżej:
1. Publiczne
To jest Modyfikator dostępu , który określa, skąd i kto może uzyskać dostęp do metody. Upublicznienie metody main() powoduje, że jest ona dostępna globalnie. Jest upubliczniany, aby JVM mógł go wywołać spoza klasy, ponieważ nie jest obecny w bieżącej klasie.
Jeśli główna metoda nie jest publiczna, jej dostęp jest ograniczony.
Przykład:
Jawa // 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'); } }>
Wyjście
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. Statyczne
To jest słowo kluczowe to znaczy, gdy jest powiązany z metodą, co czyni ją a metoda związana z klasą . The główny() metoda jest statyczna, więc JVM może ją wywołać bez utworzenie instancji klasy . Oszczędza to również niepotrzebnego marnowania pamięci, która zostałaby wykorzystana przez obiekt zadeklarowany tylko do wywołania metody główny() metodą JVM.
Jeśli spróbujesz uruchomić kod Java, w którym main nie jest statyczny, pojawi się błąd.
Przykład:
Jawa // 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'); } }>
Wyjście
wyrównaj obraz CSS
Error: Main method is not static in class test, please define the main method as: public static void main(String[] args)>
3. Pustka
To jest słowo kluczowe i jest do tego przyzwyczajony określić, że metoda niczego nie zwraca . jako główny() metoda niczego nie zwraca, zwracany typ to próżnia . Tak szybko jak główny() metoda zakończy się, program Java również się zakończy. Dlatego nie ma sensu wracać z tego miejsca główny() metodę, ponieważ JVM nie może nic zrobić z jej zwracaną wartością.
Jeśli metoda główna nie jest pusta, pojawi się błąd.
Przykład:
Jawa // 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; } }>
Wyjście
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. główne
To jest nazwa głównej metody Java . To jest identyfikator które JVM szuka jako punkt wyjścia programu Java . To nie jest słowo kluczowe.
Jeśli zmienimy nazwę podczas inicjowania metody głównej, otrzymamy błąd.
Przykład:
Jawa // 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'); } }>
Wyjście
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[] argumenty
To przechowuje wiersz poleceń Java argumenty i jest tablicą typu java.lang.String klasa. Tutaj nazwa tablicy String to argumenty ale nie jest to naprawione i użytkownik może zamiast niej użyć dowolnej nazwy.
Przykład: Proces wykonania ciągu []
Jawa // 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); } }>
Wyjście
1 2 3>
Oprócz wspomnianego powyżej podpisu main, możesz użyć public static void main(String args[]) Lub public static void main(String… argumenty) wywołać główną funkcję w Javie. Metoda główna jest wywoływana, jeśli jej parametr formalny odpowiada parametrowi tablicy String.
Notatka: Główną metodą jest Cumpulosory w Javie
Przeciążanie metody main() w Javie
Przeciążanie metody main() jest możliwe w Javie, co oznacza, że w programie możemy utworzyć dowolną liczbę metod main().
Aby przeciążyć metodę main() w Javie, musimy utworzyć metodę main() z różnymi parametrami.
nazwy miast usa
Przykład:
Jawa 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); } }> Wyjście:
Running main() with no arguments>
Wniosek
Metoda main() Java jest punktem wyjścia programu Java. Jest to część główna wykonywana przez maszynę JVM i bez metody main() nie można bez niej uruchomić żadnego programu Java.
Ucz się więcej: Samouczek Java
Metoda main() Java — często zadawane pytania
Czy główną metodą może być int? Jeśli nie, dlaczego?
Nie, główna metoda Java nie może być int. Są ku temu dwa główne powody:
- JVM szuka public static void main(String[] argumenty) podczas uruchamiania wykonywania programu, ponieważ jest to standardowy podpis dla wpisu. Użycie podpisu int spowodowałoby zamieszanie i problemy ze zgodnością podczas wykonywania programu.
- Posiadanie pustego podpisu oznacza, że metoda główna niczego nie zwróci, ale użycie podpisu int oznacza, że funkcja główna będzie musiała zwrócić liczbę całkowitą, co nie jest przydatne w przypadku JVM.
Czy możemy uruchomić program w Javie bez metody main?
Nie, od JDK7 metoda główna jest obowiązkowa. Kompilator najpierw sprawdzi, czy funkcja main() jest obecna, czy nie. Jeśli Twój program nie zawiera metody main, pojawi się komunikat o błędzie: Metoda główna nie została znaleziona w tej klasie.
Aby sprawdzić więcej na ten temat, zobacz Czy metoda główna jest obowiązkowa w Javie? artykuł.
Czy możemy zadeklarować metodę main() bez argumentów String[]?
Tak, możemy zadeklarować metodę main() bez argumentów String[]. Chociaż wygeneruje komunikat o błędzie, jeśli bezpośrednio spróbujemy wykonać główną metodę w klasie sterownika, jak pokazano w poniższym przykładzie.
Poniżej znajduje się poprawna metoda napisania programu bez argumentów String [].
Jawaimport java.io.*; import javafx.application.Application; abstract class GFG extends javafx.application.Application { // static block static { System.out.println('Hello, world!'); System.exit(0); } }>Wyjście
Hello, world!>
Dlaczego główna pustka jest w Javie?
Metoda główna służy jako punkt wyjścia do wykonania programu w Javie. JVM nie oczekuje wartości zwracanej z funkcji main, ponieważ nie ma mechanizmu umożliwiającego jej otrzymanie lub przetworzenie takiej wartości.
typy sieci