logo

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

Il metodo main() di Java è il punto di partenza da cui JVM avvia l'esecuzione di un programma Java. JVM non eseguirà il codice se al programma manca il metodo principale. Quindi, è uno dei metodi più importanti di Java ed averne una corretta comprensione è molto importante.

Il compilatore Java o JVM cerca il metodo principale quando inizia l'esecuzione di un programma Java. La firma del metodo principale deve essere specificata affinché la JVM riconosca quel metodo come punto di ingresso. Se cambiamo la firma del metodo, il programma compila ma non viene eseguito.



L'esecuzione del programma Java, il java.exe è chiamato. Java.exe a sua volta effettua chiamate Java Native Interface o JNI e caricano la JVM. Java.exe analizza la riga di comando, genera un nuovo array String e richiama il metodo main(). Per impostazione predefinita, il thread principale è sempre un thread non demone.

Sintassi del metodo main()

La sintassi del metodo main() è sempre scritta come:

uguaglianza degli oggetti in Java

Sintassi del metodo Java main()



Esempio

Il metodo più comune nella definizione del metodo main() è mostrato nell'esempio seguente.

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

Produzione
I am a Geek>

Ogni parola nel pubblico vuoto statico principale l'istruzione ha un significato nella JVM descritto di seguito:

1. Pubblico

È un Modificatore di accesso , che specifica da dove e chi può accedere al metodo. Rendere pubblico il metodo main() lo rende disponibile a livello globale. Viene reso pubblico in modo che JVM possa invocarlo dall'esterno della classe poiché non è presente nella classe corrente.



Se il metodo principale non è pubblico, il suo accesso è limitato.

Esempio:

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


Produzione

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

È un parola chiave cioè quando associato a un metodo, rendendolo a metodo relativo alla classe . IL principale() Il metodo è statico in modo che JVM possa invocarlo senza istanziando la classe . Ciò evita anche l'inutile spreco di memoria che sarebbe stata utilizzata dall'oggetto dichiarato solo per chiamare il file principale() metodo dalla JVM.

Se provi a eseguire il codice Java dove main non è statico, riceverai un errore.

Esempio:

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


Produzione

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

3. Vuoto

È un parola chiave ed è abituato specificare che un metodo non restituisce nulla . Come il principale() metodo non restituisce nulla, il suo tipo restituito è vuoto . Appena il principale() metodo termina, termina anche il programma Java. Quindi, non ha alcun senso tornare dal principale() metodo poiché JVM non può fare nulla con il suo valore restituito.

Se il metodo principale non è nullo, verrà visualizzato un errore.

Esempio:

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


Produzione

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

È il nome del metodo principale Java . È il identificatore che la JVM cerca come file punto di partenza del programma Java . Non è una parola chiave.

Se cambiamo il nome durante l'avvio del metodo principale, riceveremo un errore.

Esempio:

sostituire dalla stringa in Java
Giava
// 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');  } }>


Produzione

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[] argomenti

Esso memorizza la riga di comando Java argomenti ed è un array di tipo java.lang.String classe. Qui, il nome dell'array String è arg ma non è fisso e l'utente può utilizzare qualsiasi nome al suo posto.

Esempio: Processo di esecuzione di String[]

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


Produzione

1 2 3>

Oltre alla firma principale sopra menzionata, potresti usare public static void main(String args[]) O public static void main(String… args) per chiamare la funzione principale in Java. Il metodo main viene chiamato se il suo parametro formale corrisponde a quello di un array di Strings.

Nota: Il metodo principale è Cumpulosory in Java

Sovraccarico del metodo main() in Java

In Java è possibile sovraccaricare il metodo main(), il che significa che possiamo creare un numero qualsiasi di metodi main() in un programma.

Per sovraccaricare il metodo main() in Java, dobbiamo creare il metodo main() con parametri diversi.

Esempio:

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

Produzione:

Running main() with no arguments>

Conclusione

Il metodo Java main() è il punto di partenza di un programma Java. È il corpo principale che viene eseguito dalla JVM e senza il metodo main() nessun programma Java può essere eseguito senza di esso.

Saperne di più: Tutorial Java

Metodo Java main(): domande frequenti

Il metodo principale può essere int? Se no, perché?

No, il metodo principale Java non può essere int. Ci sono due ragioni principali per questo:

  1. JVM cerca public static void main(String[] args) all'avvio dell'esecuzione del programma in quanto è la firma standard per l'immissione. L'uso della firma int causerebbe confusione e problemi di compatibilità durante l'esecuzione del programma.
  2. Avere la firma void significa che il metodo main non restituirà nulla, ma usare la firma int significa che la funzione main dovrà restituire un numero intero, il che non è utile per JVM.

Possiamo eseguire un programma Java senza il metodo main?

No, da JDK7 il metodo principale è obbligatorio. Il compilatore verificherà prima se main() è presente o meno. Se il tuo programma non contiene il metodo main, riceverai un errore metodo main non trovato nella classe.

Per verificare di più sull'argomento fare riferimento a Il metodo main è obbligatorio in Java? articolo.

Java che ordina un arraylist

Possiamo dichiarare il metodo main() senza String[] args?

Sì, possiamo dichiarare il metodo main() senza String[] args. Anche se genererà un messaggio di errore se proviamo direttamente a eseguire il metodo main all'interno della classe driver come fatto nell'esempio seguente.

Di seguito è riportato il metodo corretto per scrivere un programma senza String args[].

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

Produzione

Hello, world!>

Perché il vuoto principale in Java?

Il metodo main funge da punto di partenza per l'esecuzione del programma in Java. La JVM non si aspetta un valore di ritorno dal main perché non esiste alcun meccanismo per ricevere o elaborare tale valore.