Dans les programmes Java, le point à partir duquel le programme commence son exécution ou simplement le point d’entrée des programmes Java est la méthode main(). Par conséquent, c’est l’une des méthodes les plus importantes de Java et avoir une bonne compréhension de celle-ci est très important.
Syntaxe la plus courante de la méthode main() :
class
GeeksforGeeks {
public
static
void
{
.
System.out.println(
"I am a Geek"
);
}
}
.
I am a Geek
Explication :
Chaque mot de l’instruction public static void main a une signification pour la JVM.
- Public : C’est un modificateur d’accès, qui précise d’où et qui peut accéder à la méthode. Rendre la méthode main() publique la rend globalement disponible. Elle est rendue publique pour que la JVM puisse l’invoquer depuis l’extérieur de la classe car elle n’est pas présente dans la classe actuelle.
.
class GeeksforGeeks {
.private
static
void
main(String args)
{
.System.out.println(
"I am a Geek"
);
}
}
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
- Statique : C’est un mot clé qui, lorsqu’il est associé à une méthode, en fait une méthode liée à une classe. La méthode main() est statique afin que la JVM puisse l’invoquer sans instancier la classe. Cela permet également d’éviter le gaspillage inutile de la mémoire qui aurait été utilisée par l’objet déclaré uniquement pour l’appel de la méthode main() par la JVM.
class
GeeksforGeeks {
..public
void
main(String args) {
DiversitéSystem.out.println(
"I am a Geek"
);
}
}
.Error: Main method is not static in class test, please define the main method as:public static void main(String args)
- Vide : C’est un mot-clé et utilisé pour spécifier qu’une méthode ne renvoie rien. Comme la méthode main() ne renvoie rien, son type de retour est void. Dès que la méthode main() se termine, le programme java se termine aussi. Par conséquent, cela n’a aucun sens de retourner de la méthode main() car la JVM ne peut rien faire avec la valeur de retour de celle-ci.
.class
GeeksforGeeks {
public
static int main(String args) Division{
System.out.println(
"I am a Geek"
);
return
.1 ;
}
}
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
- main : C’est le nom de la méthode main de Java. C’est l’identifiant que la JVM recherche comme point de départ du programme java. Ce n’est pas un mot-clé.
.class
GeeksforGeeks {
public
static
void
myMain(String args)
{
.System.out.println(
"I am a Geek"
);
}
}
.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
- Chaîne args : Il stocke les arguments de la ligne de commande Java et est un tableau de type java.lang.String classe. Ici, le nom du tableau String est args mais il n’est pas fixe et l’utilisateur peut utiliser n’importe quel nom à sa place.
class
GeeksforGeeks {
public
static
void
main(String args)
{
for
(String elem : args)
System.out.println(elem);
Division}
}
123
En dehors de la signature de main mentionnée ci-dessus, vous pourriez utiliser public static void main(String args) ou public static void main(String… args) pour appeler la fonction main en java. La méthode main est appelée si son paramètre formel correspond à celui d’un tableau de Strings.
La méthode main peut-elle être int ? Si non, pourquoi ?
class
GeeksforGeeks {
.public
static
int main(String args) {
System.out.println(
"GeeksforGeeks"
);
}
}
Java ne retourne pas int implicitement, même si nous déclarons que le type de retour de main est int.
Nous obtiendrons une erreur de compilationprg1.java:6 : erreur : missing return statement
}
^
1 error.
class
GeeksforGeeks {
ivpublic
static
int
main(String args) {
System.out.println(
"GeeksforGeeks"
);
return
0
;
}
}
Maintenant, même si nous retournons 0 ou un entier explicitement nous-mêmes, depuis int main.
Nous obtenons une erreur d’exécution.Erreur : La méthode main doit retourner une valeur de type void dans la classe GeeksforGeeks, veuillez
définir la méthode main comme:
public static void main(String args)Explication –
Les programmes C et C++ qui retournent int de main sont des processus du système d’exploitation. La valeur int renvoyée par main en C et C++ est le code de sortie ou le statut de sortie. Le code de sortie d’un programme C ou C++ illustre la raison pour laquelle le programme s’est terminé. Le code de sortie 0 signifie que le programme s’est terminé avec succès. Cependant, un état de sortie non nul indique une erreur. Ex, le code de sortie 1 dépeint des erreurs diverses, telles que « diviser par zéro »Le processus parent de tout processus enfant continue à attendre le statut de sortie de l’enfant. Et après avoir reçu le statut de sortie de l’enfant, nettoie le processus enfant de la table des processus et libère les ressources qui lui sont allouées. C’est pourquoi il devient obligatoire pour les programmes C et C++(qui sont des prcoesses de l’OS) de passer son statut de sortie de main explicitement ou implicitement.
Cependant, Le programme java s’exécute comme ‘main thread’ dans la JVM. Le programme Java n’est même pas directement un processus du système d’exploitation. Il n’y a pas d’interaction directe entre le programme Java et le système d’exploitation. Il n’y a pas d’allocation directe de ressources au programme Java, ou le programme Java n’occupe aucune place dans la table des processus. À qui doit-il alors renvoyer l’état de sortie ? C’est pourquoi la méthode main de Java est conçue pour ne pas renvoyer d’int ou de statut de sortie.
Mais la JVM est un processus d’un système d’exploitation, et la JVM peut être terminée avec un certain statut de sortie. A l’aide de java.lang.Runtime.exit(int status) ou System.exit(int status)
Article Tags :JavaTags de pratique : - Statique : C’est un mot clé qui, lorsqu’il est associé à une méthode, en fait une méthode liée à une classe. La méthode main() est statique afin que la JVM puisse l’invoquer sans instancier la classe. Cela permet également d’éviter le gaspillage inutile de la mémoire qui aurait été utilisée par l’objet déclaré uniquement pour l’appel de la méthode main() par la JVM.