JavaRush /Java-Blog /Random-DE /Literale in Java

Literale in Java

Veröffentlicht in der Gruppe Random-DE
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?

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, ist null. Gemäß den Grundelementen werden auch Literale in Abschnitte unterteilt:
  1. Numerisch:
    • Ganzzahlen;
    • Gleitkomma;
  2. Zeichenfolge;
  3. Charakter;
  4. 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
Mit JDK 7 wurde die Möglichkeit eingeführt, Binärwerte zu schreiben . Dies geschieht mit dem Präfix 0b oder 0B . Als nächstes folgt das Schreiben mit 0 und 1. Oktalzahlen werden mit einer führenden 0 geschrieben. Gültige Ziffern sind 0 bis 7. Das Schreiben von 09 oder 08 führt zu einem Kompilierungsfehler. Mit dem dezimalen Zahlensystem gibt es keine Probleme : Zahlen werden in der uns bekannten Form angegeben. Die einzige Einschränkung besteht darin, dass die Zahl nicht mit 0 beginnen darf, da der Compiler sie als Oktalzahl annimmt. Zahlen im Hexadezimalformat werden mit den Präfixen 0x und 0X geschrieben. Gültige Zahlen liegen zwischen 0 und 15, wobei die Zahlen 10–15 jeweils durch AF-Symbole gekennzeichnet sind.
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, longmüssen Sie am Ende ein Symbol einfügen, das Ldiesen 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 floathinzufügen . In diesem Fall wird es auf den Typ reduziert . Das passiert nicht automatisch: fFdoublefloat
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:
  1. Über die Tastatur können gewöhnliche Zeichen eingegeben werden.
  2. Symbole, die nicht einfach über die Tastatur eingegeben werden können (Symbole verschiedener Sprachen, Formen usw.).
Reguläre Zeichen können explizit angegeben werden: ' ,' 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: falseund 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.

Literale im JavaRush-Kurs

Im JavaRush-Kurs werden Literale auf Stufe 10 in Vorlesung 8 des Java-Syntax-Kurses untersucht , wo anhand von Beispielen erklärt wird, was Literale sind und warum sie benötigt werden. JavaRush ist ein Online-Kurs zur Java-Programmierung mit Schwerpunkt auf der Praxis: über 1200 Aufgaben mit sofortiger Überprüfung, Miniprojekte, Spiele.

Abschluss

Literale in Java sind in jedem Programm eine praktische Sache, müssen aber an den Stellen verwendet werden, an denen es angebracht ist. Sie sollten Datenbankverbindungsparameter oder Werte, die sich während des Lebenszyklus des Programms ändern können, nicht im Quellcode fest codieren.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION