CodeGym /Kurse /JAVA 25 SELF /Zahlen und Zeichen in Java

Zahlen und Zeichen in Java

JAVA 25 SELF
Level 6, Lektion 1
Verfügbar

1. Welche Zahlen gibt es?

In der Programmierung arbeiten wir ständig mit Zahlen – vom Alter eines Nutzers bis zur Anzahl der Sterne in der Galaxie oder den Kopeken auf einem Bankkonto. Doch verschiedene Aufgaben erfordern unterschiedliche Arten von Zahlen: Manchmal ist es wichtig, nur Ganzzahlen zu speichern, manchmal sehr genaue Dezimalzahlen, und manchmal werden Zahlen „ohne Minuszeichen“ benötigt.

Ganzzahlen (int und andere)

Eine Ganzzahl ist eine Zahl ohne Nachkommanteil.
In Java verwendet man am häufigsten den Typ int, daneben gibt es aber noch einige weitere Varianten, die sich in Größe und Wertebereich unterscheiden.

  • int – der Standardtyp für Ganzzahlen. Er umfasst sehr große (und sehr kleine) Werte und benötigt dennoch nicht allzu viel Speicher. Zum Beispiel für Like-Zähler, Alter oder die Anzahl der Tage im Jahr wird fast immer int verwendet.
  • long – wird verwendet, wenn die Werte sehr groß sein können (zum Beispiel Milliarden oder Billionen). Beispiel: die Gesamtzahl aller YouTube-Aufrufe seit Beginn speichern.
  • short – ein sparsamer, aber selten benutzter Typ. Geeignet dort, wo viele gleichartige kleine Werte vorkommen (z. B. Audiodaten, Farbkomponenten).
  • byte – für noch kleinere Werte, besonders in Grafik und Dateiverarbeitung, wo Speicherersparnis wichtig ist.

Gleitkommazahlen (double, float)

Manchmal muss man mit Zahlen arbeiten, die einen Nachkommanteil haben. Zum Beispiel Lufttemperatur, der Notendurchschnitt eines Studenten oder der Warenpreis mit Cent.

  • double – der „Standardtyp“ zur Speicherung von Gleitkommazahlen. Für die meisten Berechnungen ausreichend genau (Beispiel: 3.1415926535…).
  • float – leichter und weniger genau; häufiger in Aufgaben der Computergrafik oder bei der Verarbeitung großer Datenmengen anzutreffen, wo Speicherersparnis wichtig ist.

Spezielle Zahlentypen

  • BigInteger – wenn man mit riesigen Zahlen arbeiten muss, die die Standardwertebereiche überschreiten, etwa in der Kryptographie oder bei astronomischen Berechnungen.
  • BigDecimal – eine Klasse für exakte Berechnungen mit Dezimalzahlen (Finanzen, Zinsberechnung); hilft, Ungenauigkeiten zu vermeiden, die double und float eigen sind.

2. Wertebereiche

Ganzzahltypen können sowohl positive als auch negative Zahlen speichern. Das ist praktisch, wenn Werte „sowohl über als auch unter Null“ liegen können: zum Beispiel Temperatur, Kontostand, Höhe relativ zum Meeresspiegel.

Beispiel:

  • int : -10, 0, 50
  • long : 0, 10, -1000_000_000_000_000_000L

Ganzzahltypen

Typ Größe Wertebereich Beispielwerte
byte
1 Byte -128 bis 127 -128, 0, 127
short
2 Byte -32 768 bis 32 767 -1000, 0, 32000
int
4 Byte -2 147 483 648 bis 2 147 483 647 -1000000, 0, 2000000
long
8 Byte -9 223 372 036 854 775 808
bis 9 223 372 036 854 775 807
-10_000_000_000, 1

Gleitkommatypen

Typ Größe Beispielwerte Beschreibung
float
4 Byte 3.14f, -0.001f einfache Genauigkeit (7 Stellen)
double
8 Byte 3.1415, -1.7E+308 doppelte Genauigkeit (15–16 Stellen)

3. Suffixe für Zahlen

In manchen Situationen muss man explizit angeben, welchen Typ man für eine Zahl verwenden möchte. Das geschieht mit Hilfe von Suffixen:

  • L oder l – für den Typ long (z. B. 10000000000L)
  • F oder f – für den Typ float (z. B. 3.14f)
  • D oder d – für den Typ double (meist nicht nötig, weil Gleitkommazahlen ohne Suffix double sind)

Wenn man kein Suffix angibt, gilt standardmäßig: Eine Ganzzahl ist ein int, eine Gleitkommazahl ein double. Zum Beispiel ist 42 ein int und 3.14 ein double.

Wozu ist das nötig? Damit es z. B. keinen Fehler gibt, wenn man einer Variable vom Typ long eine große Zahl zuweist:

long bigNumber = 9000000000L; // Ohne L führt das zu einem Kompilierungsfehler

Trennzeichen als Unterstrich _

Wenn Zahlen lang sind, kann man sich leicht in den Nullen verheddern. Für Übersicht und bessere Lesbarkeit kann man in Java Unterstriche innerhalb von Zahlen verwenden.

int population = 146_700_000;
long stars = 100_000_000_000L;
Unterstriche zur besseren Lesbarkeit von Zahlen

Das ist völlig legal: Der Compiler ignoriert die Unterstriche, und Sie sehen die Stellen „auf einen Blick“. Wichtig ist – keinen Unterstrich am Anfang, am Ende, nach dem Punkt oder vor dem Suffix zu setzen.

4. Zeichentyp char: was ist das und wozu?

Der Typ char wird zur Speicherung eines einzigen Zeichens verwendet: Buchstabe, Ziffer, Satzzeichen, Leerzeichen, Sonderzeichen und sogar Smiley.

Beispiele:

char letter = 'A';
char digit = '7';
char symbol = '?';
char cyrillic = '\u0416';
char euro = '€';
char smile = '☺'; // Ja, das geht auch!

Wichtige Regeln:

  • Ein Wert des Typs char wird in einfachen Anführungszeichen notiert: 'A', '7', '#'.
  • Es ist genau ein Zeichen! Wenn man 'AB' schreibt, beschwert sich der Compiler.
  • Hinter jedem Zeichen steckt ein numerischer Code (Unicode).

Unicode: Zeichen aus aller Welt

Java verwendet den Standard Unicode, wodurch sich nicht nur lateinische Buchstaben, sondern auch Kyrillisch, Ideogramme, Emojis und sogar altägyptische Hieroglyphen speichern lassen (falls es einmal nötig sein sollte).

Interessante Tatsache:
Der Typ char ist im Grunde eine 16-Bit-Zahl (von 0 bis 65535), wobei jedem Wert ein eigenes Zeichen entspricht.

5. Zeichen und Zahlen: Verbindung über Unicode

Da jedes Zeichen intern eine Zahl ist, können wir char in int und zurück umwandeln.

Beispiel: den Unicode-Code eines Zeichens ermitteln

public class CharToInt {
    public static void main(String[] args) {
        char ch = 'A';
        int code = ch; // Implizite Umwandlung char → int

        System.out.println("Unicode-Code des Zeichens '" + ch + "': " + code);
    }
}

Ergebnis:

Unicode-Code des Zeichens 'A': 65

Und jetzt umgekehrt – das Zeichen aus dem Code erhalten:

public class IntToChar {
    public static void main(String[] args) {
        int code = 1040; // Code des Buchstabens '\u0410' in Unicode (Kyrillisch)
        char ch = (char) code; // Explizite Umwandlung int → char

        System.out.println("Zeichen mit dem Code " + code + ": " + ch);
    }
}

Ergebnis:

Zeichen mit dem Code 1040: \u0410

6. Grundlegende primitive Typen in Java

Typ Größe (Bit) Wertebereich Beispielwert Hinweis
byte
8 -128 ... 127 42 Wird sehr selten verwendet
short
16 -32,768 ... 32,767 12345 Zur Speicherersparnis
int
32 -2,147,483,648 ... 2,147,483,647 1000000 Standard für Ganzzahlen
long
64 ≈ −9.22 × 1018 ... ≈ 9.22 × 1018 5000000000L Für sehr große Ganzzahlen
float
32 ~±3.4 × 10-38 ... ±3.4 × 1038 3.14f Gleitkommazahlen, geringe Genauigkeit
double
64 ~±1.7 × 10-308 ... ±1.7 × 10308 2.718 Gleitkommazahlen, hohe Genauigkeit
char
16 0 ... 65 535 (Unicode) '\u0416', 'A', '?' Ein einzelnes Zeichen
boolean
1 true, false true Logischer Wert
1
Aufgabe
JAVA 25 SELF, Level 6, Lektion 1
Gesperrt
Erstellen eines Inventars für einen RPG-Helden 🎮
Erstellen eines Inventars für einen RPG-Helden 🎮
1
Aufgabe
JAVA 25 SELF, Level 6, Lektion 1
Gesperrt
Schatzzählung in der Drachenhöhle 🐉
Schatzzählung in der Drachenhöhle 🐉
1
Aufgabe
JAVA 25 SELF, Level 6, Lektion 1
Gesperrt
Entschlüsselung antiker Runen 🔮
Entschlüsselung antiker Runen 🔮
1
Aufgabe
JAVA 25 SELF, Level 6, Lektion 1
Gesperrt
Beidseitige Magie von Zeichen und Zahlen ✨
Beidseitige Magie von Zeichen und Zahlen ✨
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION