Java main () Methode erklärt

Java main () Methode erklärt

1. Überblick

Jedes Programm benötigt einen Ort, an dem es ausgeführt werden kann. Wenn wir über Java-Programme sprechen, ist dies diemain-Methode.

Wir sind es so gewohnt, diemain-Methode während unserer Codesitzungen zu schreiben, dass wir nicht einmal auf ihre Details achten. In diesem kurzen Artikel analysieren wir diese Methode und zeigen einige andere Schreibweisen auf.

2. Gemeinsame Unterschrift

Die gebräuchlichste Hauptmethodenvorlage ist:

public static void main(String[] args) { }

Auf diese Weise haben wir es gelernt. Auf diese Weise vervollständigt die IDE den Code automatisch für uns. Dies ist jedoch nicht die einzige Form, die diese Methode annehmen kann,there are some valid variants we can use, und nicht jeder Entwickler achtet auf diese Tatsache.

Bevor wir uns mit diesen Methodensignaturen befassen, überprüfen wir die Bedeutung der einzelnen Schlüsselwörter der allgemeinen Signatur:

  • public - Zugriffsmodifikator, dh globale Sichtbarkeit

  • static - Auf die Methode kann direkt aus der Klasse zugegriffen werden. Wir müssen kein Objekt instanziieren, um eine Referenz zu haben und sie zu verwenden

  • void - bedeutet, dass diese Methode keinen Wert zurückgibt

  • main - Der Name der Methode, nach der JVM beim Ausführen eines Java-Programms sucht

Der Parameterargs repräsentiert die von der Methode empfangenen Werte. So übergeben wir Argumente an das Programm, wenn wir es zum ersten Mal starten.

Der Parameterargs ist ein Array vonStrings. Im folgenden Beispiel:

java CommonMainMethodSignature foo bar

Wir führen ein Java-Programm namensCommonMainMethodSignature aus und übergeben zwei Argumente:foo undbar. Auf diese Werte kann innerhalb dermain-Methode alsargs[0] (mitfoo als Wert) undargs[1] (mitbar als Wert) zugegriffen werden.

Im nächsten Beispiel überprüfen wir die Argumente, um zu entscheiden, ob Test- oder Produktionsparameter geladen werden sollen:

public static void main(String[] args) {
    if (args.length > 0) {
        if (args[0].equals("test")) {
            // load test parameters
        } else if (args[0].equals("production")) {
            // load production parameters
        }
    }
}

Es ist immer gut daran zu denken, dass IDEs auch Argumente an das Programm übergeben können.

3. Verschiedene Möglichkeiten, einemain()-Methode zu schreiben

Lassen Sie uns einige verschiedene Möglichkeiten zum Schreiben dermain-Methode überprüfen. Obwohl sie nicht sehr häufig sind, sind sie gültige Signaturen.

Beachten Sie, dass keine dieser Methoden spezifisch für die Methodemainist. Sie können mit jeder Java-Methode verwendet werden, sind jedoch auch ein gültiger Bestandteil der Methodemain.

Die eckigen Klammern können in der Nähe vonString wie in der allgemeinen Vorlage oder in der Nähe vonargs auf beiden Seiten platziert werden:

public static void main(String []args) { }
public static void main(String args[]) { }

Argumente können als varargs dargestellt werden:

public static void main(String...args) { }

Wir können sogarstrictfp für diemain()-Methode hinzufügen, die aus Gründen der Kompatibilität zwischen Prozessoren bei der Arbeit mit Gleitkommawerten verwendet wird:

public strictfp static void main(String[] args) { }

synchronized undfinal sind ebenfalls gültige Schlüsselwörter für diemain-Methode, haben hier jedoch keine Auswirkung.

Andererseits kannfinal aufargs angewendet werden, um zu verhindern, dass das Array geändert wird:

public static void main(final String[] args) { }

Um diese Beispiele zu beenden, können wir auch diemain-Methode mit allen oben genannten Schlüsselwörtern schreiben (die Sie in einer praktischen Anwendung wahrscheinlich nie verwenden werden):

final static synchronized strictfp void main(final String[] args) { }

4. Mit mehr als einemmain() Methoden

Wir können auchmore than one main method inside our application. definieren

Tatsächlich verwenden einige Leute es als primitive Testtechnik, um einzelne Klassen zu validieren (obwohl Test-Frameworks wieJUnit für diese Aktivität viel mehr angezeigt sind).

Um anzugeben, welchemain-Methode die JVM als Einstiegspunkt unserer Anwendung ausführen soll, verwenden wir dieMANIFEST.MF-Datei. Innerhalb des Manifests können wir die Hauptklasse angeben:

Main-Class: mypackage.ClassWithMainMethod

Dies wird hauptsächlich beim Erstellen einer ausführbaren.jar-Datei verwendet. Wir geben an, welche Klasse über die Methodemain verfügt, um die Ausführung zu starten, und zwar über die Manifestdatei unterMETA-INF/MANIFEST.MF (in UTF-8 codiert).

5. Fazit

In diesem Tutorial wurden die Details dermain-Methode und einige andere Formen beschrieben, die angenommen werden können, selbst diejenigen, die den meisten Entwicklern nicht sehr häufig vorkommen.

Denken Sie daran, dassalthough all the examples that we’ve shown are valid in terms of syntax, they just serve the educational purpose und die meiste Zeit bei der gemeinsamen Signatur bleiben, um unsere Arbeit zu erledigen.