Ich fange gerade an, Programme in Java zu schreiben. Was bedeutet der folgende Java-Code?
public static void main(String[] args)
Was ist
String[] args
?Wann würden Sie diese verwenden
args
?
Quellcode und / oder Beispiele werden abstrakten Erklärungen vorgezogen
java
parameters
command-line-arguments
main
Freddiefujiwara
quelle
quelle
args
nicht unbedingt benannt werden mussargs
(Sie können es benennen, was Sie wollen) - obwohl es am besten ist, die Konvention zu befolgen. Sie können auchString... args
von Zeit zu Zeit sehen, was gleichwertig ist.args
garantiert durch Leerzeichen unabhängig vom Betriebssystem getrennt?-version
zum Beispieljava -version
undjava.exe -version
, aber nichtjava.exe /version
(Versuche, die Hauptklasse zu laden.version
). Nur meine 2 Cent, wenn jemals jemand darauf stößt.Diese sind für Befehlszeilenargumente in Java.
Mit anderen Worten, wenn Sie laufen
Dann
args
enthält:[ "eins zwei" ]
Der Grund dafür ist, Ihre Anwendung so zu konfigurieren, dass sie auf eine bestimmte Weise ausgeführt wird, oder sie mit den benötigten Informationen zu versorgen.
Wenn Sie neu in Java sind, empfehle ich dringend, die offiziellen Java TM Tutorials von Oracle zu lesen .
quelle
args
enthält die Befehlszeilenargumente, die beim Aufruf an das Java-Programm übergeben werden. Zum Beispiel, wenn ich das Programm so aufrufe:Dann
args
wird ein Array sein, das die Zeichenfolgen"-f"
und enthält"file.txt"
.quelle
Die folgende Antwort basiert auf meinem Verständnis und einigen Tests.
Was ist String [] args?
Ans->
String [] -> Wie wir wissen, ist dies ein einfaches String-Array.
args -> ist der Name eines Arrays, es kann alles sein (zB a, ar, argument, param, parameter), keine Probleme mit dem Compiler & ausgeführt & ich habe es auch getestet.
ZB
1) public static void main (Argument String [])
2) public static void main (Parameter String [])
Wann würden Sie diese Argumente verwenden?
Ans->
Die Hauptfunktion wird von Entwicklern sehr intelligent gestaltet. Das tatsächliche Denken ist sehr tief. Was im Grunde unter Berücksichtigung von C & C ++ basierend auf dem Kommandozeilenargument entwickelt wurde, aber heutzutage wird es von niemandem mehr verwendet.
Sache 1- Benutzer kann einen beliebigen Datentyp über die Befehlszeile eingeben. Dies kann Number oder String sein. Er muss vom Compiler akzeptiert werden. Welchen Datentyp sollten wir verwenden? siehe das Ding 2
Sache 2 - String ist der Datentyp, der alle primitiven Datentypen wie int, long, float, double, byte, shot, char in Java unterstützt. Sie können es einfach in jedem primitiven Datentyp analysieren.
ZB Das folgende Programm wurde kompiliert und ausgeführt und ich habe es auch getestet.
Wenn Eingabe -> 1 1 ist
quelle
Auch wenn OP nur über das spricht
String[] args
, möchte ich ein vollständiges Beispiel für das gebenpublic static void main(String[] args)
.Public
: ist ein Zugriffsmodifikator , der definiert, wer auf diese Methode zugreifen kann. Öffentlich bedeutet, dass jede Klasse auf diese Methode zugreifen kann (wenn andere Klassen auf diese Klasse zugreifen können).Static
: ist ein Schlüsselwort, das die klassenbezogene Sache identifiziert. Dies bedeutet, dass die angegebene Methode oder Variable nicht instanzbezogen, sondern klassenbezogen ist. Sie können darauf zugreifen, ohne die Instanz einer Klasse zu erstellen.Void
: wird verwendet, um den Rückgabetyp der Methode zu definieren. Es definiert, was die Methode zurückgeben kann. Void bedeutet, dass die Methode keinen Wert zurückgibt.main
: ist der Name der Methode. Dieser Methodenname wird von JVM als Ausgangspunkt für eine Anwendung mit nur einer bestimmten Signatur gesucht.String[] args
: ist der Parameter der Hauptmethode.Wenn Sie sich den JDK-Quellcode ansehen (jdk-src \ j2se \ src \ share \ bin \ java.c):
Sie können sehen, dass die Startmethode in Java benannt werden muss
main
und die spezifische Signatur haben musspublic static void main(String[] args)
Der Code sagt uns auch, dass dies
public static void main(String[] args)
nicht behoben ist. Wenn Sie den Code in (jdk-src \ j2se \ src \ share \ bin \ java.c) in eine andere Signatur ändern, funktioniert dies, aber wenn Sie dies ändern, treten andere mögliche Probleme auf wegen der Java- SpezifikationenOfftopic: Es ist 7 Jahre her, seit OP diese Frage gestellt hat. Ich vermute, dass OP jetzt seine eigene Frage beantworten kann.
quelle
String [] args
Auf diese Weise deklarieren Sie auch ein Array von Strings in Java.In dieser Methodensignatur wird das Array
args
beim Aufruf der Methode mit Werten gefüllt (wie die anderen Beispiele hier zeigen). Da Sie jedoch lernen, sollten Sie verstehen, dass diesesargs
Array genau so ist, als hätten Sie eines in einer Methode selbst erstellt, wie in der folgenden:quelle
Ich würde mich trennen
in Teilen.
"public" bedeutet, dass main () von überall aufgerufen werden kann.
"statisch" bedeutet, dass main () nicht zu einem bestimmten Objekt gehört
"void" bedeutet, dass main () keinen Wert zurückgibt
"main" ist der Name einer Funktion. main () ist etwas Besonderes, da es der Start des Programms ist.
"String []" bedeutet ein Array von String.
"args" ist der Name des Strings [] (im Hauptteil von main ()). "args" ist nichts Besonderes; Sie könnten es auch anders nennen und das Programm würde genauso funktionieren.
String[] args
ist eine Sammlung von Strings, die durch ein Leerzeichen getrennt sind und in das Programm auf dem Terminal eingegeben werden können. Mehr als einmal wird der Anfänger diese Variable nicht verwenden, aber sie ist immer für alle Fälle da.quelle
Wenn Sie Ihren Code fertiggestellt haben, verwandeln Sie ihn in eine Datei mit der Erweiterung .java, die durch Doppelklick ausgeführt werden kann, aber auch in einer Konsole (Terminal auf einem Mac, cmd.exe unter Windows), die der Benutzer ausführen kann viele Dinge. Eine Sache ist, dass sie Konsolennachrichten (System.out.print oder System.out.println) sehen können, die sie nicht sehen können, wenn sie doppelklicken. Sie können auch Parameter angeben, sodass Sie normalerweise die Zeile verwenden würden
nach dem Navigieren zum Ordner des Programms mit
auf Windows oder
auf dem Mac (beachten Sie, dass der Mac weniger umständlich ist), um Code auszuführen, aber um Parameter anzugeben, die Sie verwenden würden
Mit diesen im args-Array gespeicherten Parametern, die Sie in Ihrem Programm verwenden können, möchten Sie dem Benutzer ermöglichen, spezielle Parameter zu steuern, z. B. welche Datei verwendet werden soll oder wie viel Speicher das Programm haben kann. Wenn Sie wissen möchten, wie ein Array verwendet wird, können Sie wahrscheinlich ein Thema auf dieser Site finden oder es einfach googeln. Beachten Sie, dass eine beliebige Anzahl von Parametern verwendet werden kann.
quelle
Erklärung in einfacher Laiensprache.
Die Hauptmethode erwartet von uns einige Argumente, wenn wir unsere JVM auf den Klassennamen richten. Angenommen, Ihr Dateiname lautet Try.java. Um dies in der Eingabeaufforderung auszuführen, schreiben Sie "javac Try.java" zum Kompilieren, gefolgt von "java Try" zum Ausführen. Angenommen, Sie schreiben nicht einfach "Java Try", sondern "Java Try 1". Hier haben Sie ein Argument "1" übergeben. Dies wird von Ihrer Hauptmethode übernommen, auch wenn Sie sie nicht in Ihrem Code verwenden.
Wenn Sie überprüfen möchten, ob Ihre Hauptmethode tatsächlich das Argument "1" verwendet hat oder nicht. Geben Sie einfach in Ihre Hauptmethode Folgendes ein:
quelle
Ich denke, die obigen Antworten decken dies ziemlich gut ab. Es
String args[]
handelt sich lediglich um eine Reihe von Zeichenfolgenargumenten, die Sie an Ihre Anwendung übergeben können, wenn Sie sie ausführen. Zum Abschlussmain
möchte ich hinzufügen, dass es auch gültig ist, den an die Methode übergebenen Methodenparameter als Variablenargument (varargs) vom Typ String zu definieren:public static void main (String... args)
Mit anderen Worten, die
main
Methode muss entweder ein String-Array (String args[]
) oder varargs (String... args
) als Methodenargument akzeptieren . Und es gibt auch keine Magie mit dem Namenargs
. Sie können genauso gut schreibenarguments
oder sogarfreddiefujiwara
wie unten gezeigt, z.public static void main (String[] arguments)
public static void main (String[] freddiefujiwara)
quelle
Wenn eine Java-Klasse über die Konsole ausgeführt wird, wird die Hauptmethode aufgerufen. Dazu muss die Definition dieser Hauptmethode sein
Die Tatsache, dass dieses String-Array als args bezeichnet wird, ist eine Standardkonvention, jedoch nicht unbedingt erforderlich. Sie würden dieses Array in der Befehlszeile füllen, wenn Sie Ihr Programm aufrufen
Diese werden häufig verwendet, um Optionen Ihres Programms zu definieren, z. B. Dateien, in die geschrieben oder aus denen gelesen werden soll.
quelle
in public static void main (String args []) args ist ein Array von Konsolenzeilenargumenten, deren Datentyp String ist. In diesem Array können Sie verschiedene Zeichenfolgenargumente speichern, indem Sie sie wie unten gezeigt in der Befehlszeile aufrufen: java myProgram Shaan Royal, dann werden Shaan und Royal im Array gespeichert als arg [0] = "Shaan"; arg [1] = "Royal"; Sie können dies manuell auch innerhalb des Programms tun, wenn Sie sie nicht über die Befehlszeile aufrufen.
quelle
Der Stil
dataType[] arrayRefVar
wird bevorzugt. Der StildataType arrayRefVar[]
stammt aus der C / C ++ - Sprache und wurde in Java übernommen, um C / C ++ - Programmierern gerecht zu werden.quelle
Der
String[] args
Parameter ist ein Array von Zeichenfolgen, die als Parameter übergeben werden, wenn Sie Ihre Anwendung über die Befehlszeile im Betriebssystem ausführen.Stellen Sie sich vor, Sie haben eine
myApp.jar
Java-Anwendung kompiliert und gepackt . Sie können Ihre App natürlich durch Doppelklicken im Betriebssystem ausführen, aber Sie können sie auch über die Befehlszeile ausführen, z. B. (z. B. unter Linux):Wenn Sie Ihre Anwendung aufrufen und einige Parameter übergeben, z.
Der
java -jar
Befehl übergibt Ihre Zeichenfolgenupdate
undnotify
Ihrepublic static void main()
Methode.Sie können dann etwas tun wie:
quelle
Zusätzlich zu allen vorherigen Kommentaren.
kann geschrieben werden als
oder
quelle