["Hallo Welt" verstehen] [Link-Hallo] ist lang geworden, deshalb habe ich beschlossen, hier eine Erklärung des spezifischen Verarbeitungsteils zu schreiben.
[Vorheriger Beitrag] Ich werde den Code von link-hello erneut veröffentlichen. In diesem Beitrag werde ich die Zeilen in dieser "Hallo Welt" erklären, die die spezifische Verarbeitung beschreiben.
HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello, world");
}
}
Eine Zeile, die eine bestimmte Verarbeitung beschreibt
System.out.println("hello, world");
Außerdem habe ich ** nach eigenem Ermessen ** für jeden Artikel "jedes Mal, wenn ich in Schwierigkeiten bin, wenn ich es nicht weiß" hinzugefügt. Je mehr ★ du hast, desto besser solltest du es wissen.
System
zeigt auf die Klasse java.lang.System
(jedes Mal, wenn Sie nicht wissen: ★★ ☆)In Java ist es implizit (ohne etwas zu schreiben) "import java.lang. *". Mit anderen Worten, Klassen, die zum Paket "java.lang" gehören, können referenziert werden, ohne eine "import" -Deklaration zu schreiben.
Daher kann die Klasse "java.lang.System" einfach als "System" geschrieben werden.
Die folgenden zwei Zeilen haben genau die gleiche Bedeutung
System.out.println("Hello world");
java.lang.System.out.println("Hello world");
Es ist normalerweise nicht möglich, "java.lang" wegzulassen. Wenn Sie jedoch nicht wissen, dass es zum Paket "java.lang" gehört, treten beim Überprüfen von [JavaDoc] link-java_lang Probleme auf. Beachten Sie daher, dass es sich um eine Kurznotation handelt.
Wenn Sie es nicht wissen, setzen Sie es als ** ★★ ☆ (2) **.
out
ist ein statisches
Feld der Klasse System
(jedes Mal, wenn Sie nicht wissen: ★ ☆☆)Werfen wir einen Blick auf [JavaDoc für die System
-Klasse] Link-System.
Es wird erklärt, dass die folgenden drei "statischen" Felder definiert sind.
Feldname | Erläuterung |
---|---|
err | "Standard" -Fehlerausgabestream. |
in | "Standard" -Eingabestream. |
out | Der "Standard" -Ausgabestream. |
Wie oben erwähnt, zeigt "System.out" auf das "statische" Feld der "System" -Klasse. Ein "Standard" -Ausgabestream ist ein "Stream", der mit einem "Standardausgang" verbunden ist. (Die Erklärung von "Standardausgabe" und "Stream" wird hier weggelassen.)
Im Allgemeinen ist es besser, eine get-Methode (sogenannter Getter) durchzugehen, als ein Feld "public" zu machen. Außerdem haben die oben genannten Felder nach Java-Konvention ganz andere Namen. Vielleicht hat es so ein spezielles Design für die Bequemlichkeit.
Wenn Sie sich nun die Beschreibung des Felds "out" ansehen, können Sie sehen, dass dieses Feld zur Klasse [PrintStream
] link-printstream gehört.
System.Erklärung von out
public static final PrintStream out
Versuchen wir, einer Variablen vom Typ "PrintStream" "System.out" zuzuweisen.
Versuchen Sie, eine Variable vom Typ PrintStream zuzuweisen
java.io.PrintStream ps = System.out; // System.Ersetzen Sie ps
ps.println("Hello world"); //Aufruf der println-Methode von ps
Das Ergebnis ist natürlich dasselbe wie das Schreiben von "System.out.println" ("Hallo Welt") in eine Zeile.
" System.out.println
"ist eine Redewendung zum Drucken von Werten aus Java-Programmen in die Standardausgabe.
Sie müssen sich also keine Sorgen machen, wenn Sie nicht genau wissen, was "out" ist.
Da es sich jedoch um einen grundlegenden Teil handelt, werde ich ** ★ ☆☆ (1) ** setzen, wenn Sie es nicht wissen, mit dem Gefühl, dass Sie es wissen möchten.
Werfen wir einen Blick auf [JavaDoc für die String
-Klasse] Link-String. Es wird wie folgt erklärt.
String Die Klasse repräsentiert einen String. Alle Literalzeichenfolgen wie "abc" in Java-Programmen werden als Instanzen dieser Klasse ausgeführt.
Die String
-Klasse kann als die beliebteste Klasse unter vielen Java-Klassen bezeichnet werden.
In der Java-Sprache [^ literal_o] ist die einzige Klasse, die wörtlich geschrieben werden kann, die Klasse "String".
Nur primitive Typwerte (wie "int" und "boolean") und "null" können mit Ausnahme von Zeichenfolgen ("Zeichenfolge") buchstäblich dargestellt werden.
Übrigens denke ich, dass es viele Leute gibt, die gefragt haben: "Was ist ein Wort?" Einfach ausgedrückt ist ein Literal ein "Wert, der direkt in den Quellcode geschrieben wird".
Auch wenn der Begriff Literal nicht ganz richtig ist, kann der Code unter [^ string_new] Ihnen einen Einblick in seine Bedeutung geben.
Beispiel für die Erstellung einer String-Instanz, die keine String-Literale verwendet
char data[] = {'a', 'b', 'c'};
String str = new String(data);
//Das Obige ist dasselbe wie der Code unten
String str = "abc";
Wenn Sie kein String-Literal haben, müssen Sie "einen Konstruktoraufruf mit einem char-Array als Argument schreiben", um "eine" String "-Instanz mit einem beliebigen Wert zu erhalten". String wird häufig verwendet, daher wäre es zu schwierig, ihn einzeln so zu schreiben.
"Sugar-Coated Syntax" ist ein grammatikalischer Mechanismus zur Vereinfachung der Beschreibung eines solchen "störenden Codes".
Mit anderen Worten, "Create a String
instance" hat eine zuckerbeschichtete Syntax, die als String-Literal bezeichnet wird.
Wenn Sie eine String-Instanz eines beliebigen Werts benötigen, generieren Sie diese mit einem String-Literal. Sie sollten eine Instanz nicht erstellen, indem Sie einen Konstruktor aufrufen, wenn Sie ihn nicht benötigen. (Wenn Sie beispielsweise eine Zeichenfolge aus einem Byte-Array generieren, kann der Konstruktor von "String" verwendet werden.)
Selbst wenn Sie es in ein String-Literal schreiben, müssen Sie wissen, dass es sich tatsächlich um einen neuen String (...) handelt (dh es wird eine String-Instanz erstellt). Machen wir das.
Es ist wichtig zu wissen, wo und wie die Instanz erstellt wird, nicht nur "String". Wenn Sie sie nicht kennen, setzen Sie sie als ** ★★ ☆ (2) **.
["Hallo Welt" verstehen] Am Ende von [Link-Hallo] habe ich einen Code geschrieben, der den Inhalt dieses Beitrags in "HelloWorld.java" widerspiegelt. Bitte beachten Sie dies auch.
[^ literal_o]: In anderen Sprachen als Java ist es nicht ungewöhnlich, andere Klassen als Zeichenfolgen als Literale darstellen zu können (z. B. Literale mit regulären Ausdrücken und Datumsliterale).
[^ string_new]: Dieser Code stammt aus [JavaDoc für die String
-Klasse] link-string.
Recommended Posts