1. Ganzzahlige Literale

Und nun zu einem neuen interessanten Thema – Literalen. Direkt in Programmcode geschriebene Daten werden Literale genannt . Wir sprechen hier nicht von irgendwelchen alten Daten, sondern von den Werten primitiver Typen und dem StringTyp.

Angenommen, Sie haben den folgenden Code:

Code Literale
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

Die Literale in diesem Code sind die Zahl 5, die Zahl 10und die Zeichenfolge ' Sum = '.

In Java hat alles, einschließlich Literale, einen Typ. Standardmäßig sind alle ganzzahligen Literale (ganze Zahlen) im Code ints. Der int-Typ ist der Standard-Ganzzahltyp von Java.

Darüber hinaus gibt es keine Probleme, wenn Sie sich entscheiden, einer Byte-Variablen oder einer Short-Variablen in Ihrem Code ein Integer-Literal zuzuweisen. Sie müssen lediglich sicherstellen, dass der Literalwert innerhalb des Wertebereichs liegt, den der Variablentyp speichern kann.

Der Java-Compiler ist intelligent genug, um zu verstehen, dass einer byteVariablen problemlos das Ganzzahlliteral 100 zugewiesen werden kann.

Beispiele:

Code Beschreibung
int a = 300;
Das lässt sich problemlos kompilieren.
byte a = 100; 
Das lässt sich problemlos kompilieren.
byte a = 300; 
Es kommt zu einem Kompilierungsfehler, da der maximale Bytewert 127 beträgt.

Sie können auch longLiterale in Ihren Code schreiben. Fügen Sie dazu am Ende der Ganzzahl den lateinischen Buchstaben „L“ oder „l“ hinzu.

Beispiele:

Code Beschreibung
long a = 3000000000L; 
Das lässt sich problemlos kompilieren.
long a = 3000000000; 
Kompilierungsfehler: 3 Milliarden sind zu groß für ein int-Literal.
int a = 3000000000L; 
Kompilierungsfehler: Das Literal ist ein Long-Wert, aber die Variable ist ein Int-Wert. Darüber hinaus sind 3 Milliarden mehr als das maximale int.

Ist Ihnen aufgefallen, wie schwierig es ist, große Zahlen mit 10 oder mehr Ziffern zu lesen? Man kann nicht sofort erkennen, ob im Code 3 Milliarden oder 30 Milliarden stehen. Um den Code besser lesbar zu machen (und das ist wichtig!), erlaubt Java das Einfügen von Unterstrichen in numerische Literale (sie haben keinen Einfluss auf den Wert der Zahl).

Das obige Beispiel kann mit Unterstrichen umgeschrieben werden, um es etwas klarer zu machen:

Code Beschreibung
long a = 3_000_000_000L; 
Das lässt sich problemlos kompilieren.
long a = 3_000_000_000; 
Kompilierungsfehler: 3 Milliarden sind zu groß für ein int-Literal.
int a = 3_000_000_000L; 
Kompilierungsfehler: Das Literal ist ein Long-Wert, aber die Variable ist ein Int-Wert. Darüber hinaus sind 3 Milliarden mehr als das maximale int.

Wir können jedoch keine Kommas in numerischen Literalen verwenden, da diese bereits für einen anderen Zweck verwendet werden. Beispielsweise um Argumente beim Aufruf einer Methode voneinander zu trennen.



2. Literale reeller Zahlen

In Ihrem Code können Sie nicht nur Ganzzahlen, sondern auch Gleitkommaliterale (reelle Zahlen) angeben.

Eigentlich ist die Regel ganz einfach: Wenn eine Zahl im Code einen Dezimalpunkt enthält, dann ist die Zahl ein Gleitkomma-Literal. Und nicht irgendein Literal, sondern ein doubleLiteral.

Sie können ein Float-Literal erstellen, dazu müssen Sie jedoch den Buchstaben „F“ (oder „f“) am Ende der Zahl einfügen .

Beispiele:

Code Beschreibung
double a = 100.0; 
Das lässt sich problemlos kompilieren.
double a = 100.;
Das lässt sich problemlos kompilieren.
double a = .0;
Das lässt sich problemlos kompilieren.
float a = 100.0f; 
Das lässt sich problemlos kompilieren.
float a = 100.0; 
Es wird ein Kompilierungsfehler auftreten: Die Variable ist ein Float, aber das Literal ist ein Double.

Übrigens können Sie ein Integer-Literal explizit in ein Float- oder Double-Literal umwandeln, indem Sie einfach ). Beispiele: appending the suffix 'F' (for float) or D (for double)

Code Beschreibung
double a = 100D; 
Das lässt sich problemlos kompilieren.
float a = 100F; 
Das lässt sich problemlos kompilieren.
int a = 300D; 
Es wird ein Kompilierungsfehler auftreten: Die Variable ist ein int, aber das Literal ist ein double.

Gleitkommaliterale können die wissenschaftliche Schreibweise verwenden : Zusätzlich zum vorzeichenbehafteten Teil der Zahl können Sie auch eine Zehnerpotenz angeben. Beispiel:

Wörtlich Mathematische Notation Endgültiger Wert
1.23E2
1.23 * 102
123.0
1.23E3
1.23 * 103
1230.0
1.23E-6
1.23 * 10-6
0.00000123
1E6
1.0 * 106
1000000.0
1E-10
1.0 * 10-10
0.0000000001


3. String-Literale

Sie können in Ihrem Code auch ganze Textzeilen angeben. Um den Compiler anzuweisen, einen String als Daten (ein Literal) und nicht als Teil des Codes zu behandeln, wird der gesamte String auf beiden Seiten in doppelte Anführungszeichen gesetzt.

Wenn eine einzelne Codezeile mehrere doppelte Anführungszeichen enthält, werden diese in Paare aufgeteilt. Das erste doppelte Anführungszeichen gibt den Anfang eines Literals an. Das nächste gibt das Ende des Literals an. Das nächste darauf markiert erneut den Beginn eines neuen Literals. Und der nächste markiert das Ende des zweiten Literals. Usw.

Jedes dieser Literale ist ein String.

Beispiele

Code Erläuterung
"+" + "+" + "+" + "+" + "+"
Es gibt 5 Literale in einer Zeile. Jeder von ihnen besteht aus einem einzigen  +Charakter
""
Dieses Literal ist eine leere Zeichenfolge. Eine Zeichenfolge ohne Zeichen.
"2+3" + "-5"
Hier gibt es zwei Literale. Das Ergebnis ist die Zeichenfolge „ 2+3-5“, keine Zahl
"return" + ";"
Auch hier gibt es zwei Literale. Hier gibt es keine Return-Anweisung.

Wenn ein String-Literal zu lang ist, kann es in mehrere Zeilen aufgeteilt und mit dem „Plus-Operator“ zusammengeklebt werden:

Code Erläuterung
String s = "I hold it true, whate'er befall, "
         + "I feel it when I sorrow most; "
         + "'Tis better to have loved and lost "
         + "Than never to have loved at all.";
Wenn Sie diese Zeile auf dem Bildschirm ausgeben, wird der gesamte Text in einer einzigen Zeile angezeigt!


4. Zeichenliterale

Sie können in Ihrem Code nicht nur String-Literale angeben, sondern auch Literale, die aus einzelnen Zeichen bestehen. Beachten Sie, dass es sich nicht um eine Zeichenfolge handelt, die aus einem einzelnen Zeichen besteht, sondern um Literale vom Typ char.

Im Gegensatz zu einer Zeichenfolge wird ein Zeichenliteral in einfache Anführungszeichen gesetzt . Innerhalb der einfachen Anführungszeichen muss ein Zeichen und nur ein Zeichen stehen. Sie können keine leeren einfachen Anführungszeichen verwenden.

Beispiele:

Code Erläuterung
'A'
Ein Literal vom Typ char. Es enthält den lateinischen Buchstaben „A“.
'@' 
Ein Literal vom Typ char. Es enthält das „@“-Symbol
'' 
Ein Literal vom Typ char. Es enthält ein japanisches Zeichen. Und das ist auch möglich.
'\u1f3a'
Ein Literal vom Typ char. Es enthält ein Unicode-Zeichen, das durch seine Nummer angegeben wird.

Das letzte Beispiel weist ein Unicode-Zeichen mithilfe einer speziellen Notation zu: Zuerst haben wir das Präfix \u, gefolgt von 4 Hexadezimalzeichen. Die nächsten Lektionen enthalten detaillierte Informationen dazu.