logo

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

De main()-methode van Java is het startpunt van waaruit de JVM start de uitvoering van een Java-programma. JVM zal de code niet uitvoeren als het programma de hoofdmethode mist. Daarom is het een van de belangrijkste methoden van Java, en een goed begrip ervan is erg belangrijk.

De Java-compiler of JVM zoekt naar de hoofdmethode wanneer hij begint met het uitvoeren van een Java-programma. De handtekening van de hoofdmethode moet op een specifieke manier zijn zodat de JVM die methode als toegangspunt kan herkennen. Als we de handtekening van de methode wijzigen, compileert het programma maar wordt het niet uitgevoerd.



De uitvoering van het Java-programma, de java.exe wordt genoemd. De Java.exe maakt op zijn beurt Java Native Interface- of JNI-oproepen en laadt de JVM. Java.exe ontleedt de opdrachtregel, genereert een nieuwe String-array en roept de methode main() aan. Standaard is de hoofdthread altijd een niet-daemonthread.

Syntaxis van main()-methode

De syntaxis van de methode main() wordt altijd geschreven als:

Java-schijfje

Java main() Methodesyntaxis



Voorbeeld

De meest voorkomende methode bij het definiëren van de methode main() wordt in het onderstaande voorbeeld getoond.

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

Uitvoer
I am a Geek>

Elk woord in de openbare statische leegte hoofd statement heeft een betekenis in de JVM die hieronder wordt beschreven:

1. Openbaar

Het is een Toegangsmodificator , die specificeert waar en wie toegang heeft tot de methode. Door de methode main() openbaar te maken, wordt deze wereldwijd beschikbaar. Het wordt openbaar gemaakt zodat JVM het van buiten de klasse kan aanroepen, aangezien het niet aanwezig is in de huidige klasse.



Als de hoofdmethode niet openbaar is, is de toegang beperkt.

Voorbeeld:

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


Uitvoer

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

Het is een trefwoord dat wil zeggen wanneer het wordt geassocieerd met een methode, waardoor het een klassegerelateerde methode . De voornaamst() methode is statisch, zodat JVM deze zonder kan aanroepen het instantiëren van de klasse . Dit bespaart ook de onnodige verspilling van geheugen dat zou zijn gebruikt door het object dat alleen is gedeclareerd voor het aanroepen van de voornaamst() methode van de JVM.

Als u Java-code probeert uit te voeren terwijl main niet statisch is, krijgt u een foutmelding.

Voorbeeld:

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


Uitvoer

gesplitst door tekenreeks-java
Error: Main method is not static in class test, please define the main method as: public static void main(String[] args)>

3. Nietig

Het is een trefwoord en is gewend specificeer dat een methode niets retourneert . Zoals de voornaamst() methode retourneert niets, het retourtype is leegte . Zo snel als de voornaamst() methode wordt beëindigd, wordt het Java-programma ook beëindigd. Het heeft dus geen zin om terug te keren van de voornaamst() methode omdat JVM niets kan doen met de geretourneerde waarde ervan.

Als de hoofdmethode niet ongeldig is, krijgen we een foutmelding.

Voorbeeld:

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


Uitvoer

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

Het is de naam van de Java-hoofdmethode . Het is de identificatie waar de JVM naar zoekt als de startpunt van het Java-programma . Het is geen trefwoord.

Als we de naam wijzigen tijdens het starten van de hoofdmethode, krijgen we een foutmelding.

Voorbeeld:

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


Uitvoer

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

Het slaat de Java-opdrachtregel op argumenten en is een array van het type java.lang.String klas. Hier is de naam van de String-array arg maar het staat niet vast en de gebruiker kan in plaats daarvan elke naam gebruiken.

Voorbeeld: Uitvoeringsproces van String[]

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


Uitvoer

binaire boom postorder traversal
1 2 3>

Afgezien van de bovengenoemde handtekening van main, zou je kunnen gebruiken public static void main(String args[]) of public static void main(String… args) om de hoofdfunctie in Java aan te roepen. De hoofdmethode wordt aangeroepen als de formele parameter overeenkomt met die van een array van Strings.

Opmerking: De hoofdmethode is verplicht op Java

Overbelasting van de main()-methode in Java

Het overbelasten van de methode main() is mogelijk in Java, wat betekent dat we een willekeurig aantal main()-methoden in een programma kunnen maken.

Om de methode main() in Java te overbelasten, moeten we de methode main() met verschillende parameters maken.

Voorbeeld:

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

Uitgang:

Running main() with no arguments>

Conclusie

De Java main()-methode is het startpunt van een Java-programma. Het is de hoofdtekst die wordt uitgevoerd door de JVM, en zonder de methode main() kan geen Java-programma zonder deze methode worden uitgevoerd.

Kom meer te weten: Java-zelfstudie

Java main() Methode - Veelgestelde vragen

Kan de hoofdmethode int zijn? Zo niet, waarom?

Nee, de Java-hoofdmethode kan niet int zijn. Er zijn twee belangrijke redenen hiervoor:

  1. JVM zoekt public static void main(String[] args) bij het starten van de uitvoering van het programma, aangezien dit de standaardhandtekening voor invoer is. Het gebruik van int-handtekening zou verwarring en compatibiliteitsproblemen veroorzaken tijdens de uitvoering van het programma.
  2. Het hebben van een ongeldige handtekening betekent dat de hoofdmethode niets retourneert, maar het gebruik van int-handtekening betekent dat de hoofdfunctie een geheel getal moet retourneren, wat niet handig is voor JVM.

Kunnen we een Java-programma uitvoeren zonder de hoofdmethode?

Nee, van JDK7 hoofdmethode is verplicht. De compiler zal eerst verifiëren of main() aanwezig is of niet. Als uw programma de hoofdmethode niet bevat, krijgt u een foutmelding dat de hoofdmethode niet in de klasse is gevonden.

Raadpleeg voor meer informatie over het onderwerp Is de hoofdmethode verplicht in Java? artikel.

Kunnen we de methode main() declareren zonder String[] args?

Ja, we kunnen de methode main() declareren zonder String[] args. Hoewel het een foutmelding zal genereren als we direct proberen de hoofdmethode binnen de stuurprogrammaklasse uit te voeren, zoals gedaan in het onderstaande voorbeeld.

Hieronder vindt u de juiste methode om een ​​programma te schrijven zonder String args[].

converteer tekenreeks naar int
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);  } }>

Uitvoer

Hello, world!>

Waarom is er een hoofdleegte op Java?

De hoofdmethode dient als startpunt voor programma-uitvoering in Java. De JVM verwacht geen retourwaarde van de hoofdbron, omdat er geen mechanisme is om een ​​dergelijke waarde te ontvangen of te verwerken.