logo

Metoda Java main() – public static void main(String[] args)

Metoda main() din Java este punctul de plecare de unde JVM pornește execuția unui program Java. JVM nu va executa codul, dacă programului lipsește metoda principală. Prin urmare, este una dintre cele mai importante metode ale Java și este foarte important să o înțelegeți corect.

Compilatorul Java sau JVM caută metoda principală atunci când începe să execute un program Java. Semnătura metodei principale trebuie să fie într-un mod specific pentru ca JVM să recunoască acea metodă ca punct de intrare. Dacă schimbăm semnătura metodei, programul se compilează, dar nu se execută.



Execuția programului Java, java.exe se numește. La rândul său, Java.exe face apeluri Java Native Interface sau JNI și încarcă JVM-ul. Java.exe analizează linia de comandă, generează o nouă matrice String și invocă metoda main(). În mod implicit, firul principal este întotdeauna un fir non-daemon.

Sintaxa metodei main().

Sintaxa metodei main() este întotdeauna scrisă ca:

verificarea nulului java

Sintaxa metodei Java main().



Exemplu

Cea mai comună în definirea metodei main() este prezentată în exemplul de mai jos.

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');  } }>

Ieșire
I am a Geek>

Fiecare cuvânt din public static void main declarația are un sens în JVM care este descris mai jos:

1. Public

Este un Modificator de acces , care specifică de unde și cine poate accesa metoda. Facerea publică a metodei main() o face disponibilă la nivel global. Este făcută publică, astfel încât JVM să-l poată invoca din afara clasei, deoarece nu este prezent în clasa curentă.



Dacă metoda principală nu este publică, accesul este restricționat.

Exemplu:

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');  } }>


Ieșire

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. Static

Este un cuvânt cheie adică atunci când este asociat cu o metodă, făcând-o a metoda legata de clasa . The principal() metoda este statică, astfel încât JVM să o poată invoca fără instanţierea clasei . Acest lucru salvează, de asemenea, risipa inutilă de memorie care ar fi fost folosită de obiectul declarat doar pentru apelarea principal() metoda de către JVM.

Dacă încercați să rulați cod Java unde main nu este static, veți primi o eroare.

Exemplu:

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');  } }>


Ieșire

... în java
Error: Main method is not static in class test, please define the main method as: public static void main(String[] args)>

3. Vidul

Este un cuvânt cheie si este obisnuit sa specificați că o metodă nu returnează nimic . Dupa cum principal() metoda nu returnează nimic, tipul său de returnare este gol . De îndată ce principal() metoda se termină, programul Java se încheie și el. Prin urmare, nu are niciun sens să te întorci de la principal() metoda deoarece JVM nu poate face nimic cu valoarea returnată a acesteia.

Dacă metoda principală nu este anulată, vom primi o eroare.

Exemplu:

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;  } }>


Ieșire

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. principal

Este numele metodei principale Java . Este identificator pe care JVM-ul îl caută ca fiind punctul de pornire al programului Java . Nu este un cuvânt cheie.

Dacă schimbăm numele în timp ce inițiem metoda principală, vom primi o eroare.

Exemplu:

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');  } }>


Ieșire

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

Aceasta stochează linia de comandă Java argumente și este o matrice de tip java.lang.String clasă. Aici, numele matricei String este argumente dar nu este fix și utilizatorul poate folosi orice nume în locul lui.

Exemplu: Procesul de execuție al șirului[]

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);  } }>>> 


Ieșire

1 2 3>

În afară de semnătura principală menționată mai sus, ați putea folosi public static void main (Argumente șir[]) sau public static void main(String... args) pentru a apela funcția principală în Java. Metoda principală este apelată dacă parametrul său formal se potrivește cu cel al unui tablou de șiruri de caractere.

Notă: Metoda principală este Cumpulosory în Java

Supraîncărcarea metodei main() în Java

Supraîncărcarea metodei main() este posibilă în Java, ceea ce înseamnă că putem crea orice număr de metode main() într-un program.

Pentru a supraîncărca metoda main() în Java, trebuie să creăm metoda main() cu diferiți parametri.

parseint java

Exemplu:

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);  } }>

Ieșire:

Metoda Java main() este punctul de plecare al unui program Java. Este corpul principal care este executat de JVM și fără metoda main() niciun program Java nu poate fi rulat fără ea.

Află mai multe: Tutorial Java

Metoda Java main() - Întrebări frecvente

Metoda principală poate fi int? Dacă nu, de ce?

Nu, metoda principală Java nu poate fi int. Există două motive principale pentru aceasta:

  1. JVM caută public static void main(String[] args) la începerea execuției programului, deoarece este semnătura standard pentru intrare. Utilizarea semnăturii int ar cauza confuzie și probleme de compatibilitate în timpul execuției programului.
  2. Având semnătură void înseamnă că metoda principală nu va returna nimic, dar folosirea semnăturii int înseamnă că funcția principală va trebui să returneze un întreg, ceea ce nu este util pentru JVM.

Putem executa un program Java fără metoda principală?

Nu, de la JDK7 metoda principală este obligatorie. Compilatorul va verifica mai întâi dacă main() este prezent sau nu. Dacă programul dvs. nu conține metoda principală, atunci veți obține o metodă principală de eroare care nu a fost găsită în clasă.

java tostring

Pentru a verifica mai multe despre subiect, consultați Este metoda principală obligatorie în Java? articol.

Putem declara metoda main() fără argumente String[]?

Da, putem declara metoda main() fără argumente String[]. Deși va genera un mesaj de eroare dacă încercăm direct să executăm metoda principală în interiorul clasei de driver, așa cum se face în exemplul de mai jos.

Mai jos este metoda corectă de a scrie un program fără String args[].

Java
import java.io.*; import javafx.application.Application; abstract class GFG  extends javafx.application.Application {  // static block  static  {  System.out.println('Hello, world!');  System.exit(0);  } }>

Ieșire

Hello, world!>

De ce este principalul void în Java?

Metoda principală servește ca punct de plecare pentru execuția programului în Java. JVM-ul nu se așteaptă la o valoare de returnare de la principal, deoarece nu există niciun mecanism prin care să primească sau să proceseze o astfel de valoare.