Bei der Erstellung einer Anwendung kennt der Entwickler in der Regel nur deren Struktur und geht nicht davon aus, welche Daten er verarbeiten wird. In manchen Situationen müssen Sie jedoch einige Daten im Programmcode explizit angeben (z. B. die Anzahl der Iterationen oder die auszugebende Nachricht). In diesem Fall helfen Literale. Inhalt:
- Was sind Literale?
- Arten von Literalen und ihre Verwendung
- Numerische Literale
- String-Literale
- Zeichenliterale
- Boolesche Literale
- Jedi-Technik mit Literalen
- Literale im JavaRush-Kurs
- Abschluss
Was sind Literale?
Literale sind explizit angegebene Werte im Programmcode – Konstanten eines bestimmten Typs, die zum Zeitpunkt des Starts im Code vorhanden sind.class Test {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
In dieser Klasse „Hallo Welt!“ - wörtlich. Es gibt verschiedene Arten von Literalen, abhängig von ihrem Zweck und ihrer Schreibweise.
Arten von Literalen und ihre Verwendung
Alle Literale sind primitive Werte (Strings, Zahlen, Zeichen, Boolesche Werte). Sie können kein Literalobjekt erstellen. Das einzige Literal, das einem Objekt zugeordnet ist, istnull
. Gemäß den Grundelementen werden auch Literale in Abschnitte unterteilt:
- Numerisch:
- Ganzzahlen;
- Gleitkomma;
- Zeichenfolge;
- Charakter;
- Rätsel.
Numerische Literale
Ganzzahlige Literale
Diese Art von Literal ist die einfachste. Zahlen werden in ihrer Standardform ohne Angabe von Zeichen oder anderen Zeichen geschrieben. Jede ganze Zahl ist standardmäßig ein ganzzahliges Literal. Das heißt, Sie können den Wert einer Variablen oder die Anzahl der Iterationen in einer Schleife explizit festlegen. Java unterstützt 4 Zahlensysteme:- Binär
- Oktal
- Dezimal
- Hexadezimal
public static void main(String[] args) {
int a = 0b1101010110;
int b = 012314;
int c = 456;
int d = 0x141D12;
System.out.println("Число a в двоичной системе: " + a);
System.out.println("Число b в восьмеричной системе: " + b);
System.out.println("Число c в десятичной системе: " + c);
System.out.println("Число d в шестнадцатеричной системе: " + d);
}
Ausgabe: Zahl a im Binärsystem: 854 Zahl b im Oktalsystem: 5324 Zahl c im Dezimalsystem: 456 Zahl d im Hexadezimalsystem: 1318162 Obwohl Zahlen in unterschiedlichen Zahlensystemen angegeben werden, werden sie im Programm als Dezimalzahlen verarbeitet Zahlen. Das Überschreiten der Werte führt zu einem Kompilierungsfehler:
int b = 012914; // Ошибка
int d = 0x141Z12; // Ошибка
Wenn wir es in der Kompilierungsphase ausführen, erhalten wir das folgende Ergebnis:
Error:(13, 25) java: integer number too large: 012914
Error:(14,30) java: ';' expected
Wie wäre es mit dem Tippen? Jedes ganzzahlige Literal hat den Standardtyp int
. Wenn sein Wert außerhalb der Grenzen der zugewiesenen Variablen liegt, tritt ein Kompilierungsfehler auf. Wenn Sie einen Typ verwenden, long
müssen Sie am Ende ein Symbol einfügen, das L
diesen Typ angibt:
long x = 0x1101010110; // Ошибка
long b = 1342352352351351353L; // Все в порядке
Der Versuch zu kompilieren führt zu folgendem Fehler:
Error(11, 26) java: integer number too large: 1101010110
Gleitkomma-Literale
Gleitkommazahlen oder Bruchzahlen können auf zwei Arten geschrieben werden. Der erste ist ein klassischer Dezimalbruch: 3,14159 oder 2,718281282459045. Der zweite liegt in wissenschaftlicher Form vor, also einem gewöhnlichen Dezimalbruch plus einem Suffix in Form des Symbols e oder E und der Zehnerpotenz, mit der der angegebene Bruch multipliziert werden muss. Zum Beispiel 4.05E-13, das bedeutet 4.05 * 10 -13 .double a = 2.718281828459045;
double d = 4.05E-13;
System.out.println("Тип double в классическом виде: " + a);
System.out.println("Тип double в научном виде: " + d);
Ausgabe: Klassischer Doppeltyp: 2.718281828459045 Wissenschaftlicher Doppeltyp: 4.05E-13 Im Gegensatz zu ganzen Zahlen und Zahlensystemen wird die wissenschaftliche Notation in einer Variablen gespeichert und auf die gleiche Weise wie die klassische Notation verarbeitet. Wie wäre es mit dem Tippen? Jede Gleitkommazahl erstellt einen Typ double
. Wenn Sie den Typ verwenden müssen , müssen Sie am Ende ein oder float
hinzufügen . In diesem Fall wird es auf den Typ reduziert . Das passiert nicht automatisch: f
F
double
float
float a = 2.718281828459045; // Ошибка
float d = 4.05E-13F; // Все в порядке
Wenn wir in der Kompilierungsphase beginnen, sehen wir den folgenden Fehler:
Error:(11, 27) java: incompatible types: possible lossy conversion from double to float
String-Literale
String-Literale sind eine Reihe von Zeichen, die in doppelte Anführungszeichen eingeschlossen sind. Dieser Typ wird ebenso häufig verwendet wie numerische Literale. Die Zeile kann auch Dienstzeichen enthalten, die maskiert werden müssen (sog. Escape-Sequenzen). Beispiel:String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, Wie и все мы.";
String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\".";
System.out.println(simpleString);
System.out.println(uniqueString);
Ausgabe: Dies ist eine normale Zeichenfolge. Genauso normal und unauffällig wie der Rest von uns. Und das ist eine ungewöhnliche „Linie“. Schon allein deshalb, weil einige der darin enthaltenen „Wörter“ in „Anführungszeichen“ stehen.
Zeichenliterale
Zeichenliterale in Java werden durch den Unicode-Zeichensatz dargestellt, d. h. jedes Zeichen ist ein 16-Bit-Wert. Um ein Symbol im Code anzuzeigen, wird es durch einfache Anführungszeichen getrennt. Erfahrungsgemäß gibt es zwei Arten von Symbolen:- Über die Tastatur können gewöhnliche Zeichen eingegeben werden.
- Symbole, die nicht einfach über die Tastatur eingegeben werden können (Symbole verschiedener Sprachen, Formen usw.).
,
' oder ' @
'. Wenn es sich bei einem Zeichen um ein Dienstzeichen handelt (z. B. ein Zeilenumbruch oder ein Tabulator), muss ein solches Zeichen mit einem Backslash maskiert werden. Zeichen, die nicht einfach über die Konsole eingegeben werden können, können in ihrer 16-Bit-Form angegeben werden. Dazu müssen Sie den Zeichencode mit einem Präfix angeben \u
, zum Beispiel „ \u00F7
“. Sie können Zeichen auch im Oktalstil (dreistellige Zahl) angeben, indem Sie einfach am Anfang einen Backslash hinzufügen, zum Beispiel „ \122
“. Meiner Meinung nach ist es viel einfacher zu bedienen \u
. Anwendungsbeispiel:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
Ausgabe: Kaufmännisches Und - & Divisionszeichen - ÷
Boolesche Literale
Das einfachste Literal ist ein logisches. Es gibt nur 2 Werte:false
und true
, die explizit ohne verschiedene Symbole angegeben werden. Solche Literale können Variablen vom Typ boolean zugewiesen oder an einer Stelle angegeben werden, an der der Typ boolean erwartet wird (z. B. in einem if-Block, obwohl diese Praxis, gelinde ausgedrückt, als unhöflich angesehen wird).
boolean flag = false;
if(true) {
// Действия будут выполняться всегда.
}
Jedi-Technik mit Literalen
Dank Symbolen in Java können Sie viele interessante Dinge tun, einschließlich der Verwaltung von Emojis. Lassen Sie uns zum Beispiel ein lächelndes Gesicht zeigen:int smile = 0x1F600; // Здесь шестнадцатеричный Code эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
Fazit: Lächelndes Gesicht: 😀 Obwohl die Emoji-Anzeige gruselig sein kann (abhängig von der Implementierung), erfüllt diese Lösung ihren Zweck gut. Allerdings ist es schwierig, in der Standard-Kodierungstabelle nach dem gewünschten Emoji zu suchen; der Emoticon-Bereich auf der offiziellen Website ist spärlich. Es ist viel einfacher, zusätzliche Bibliotheken zu verwenden.
GO TO FULL VERSION