Datentypen 🔢

Primitive Datentypen

Die primitiven Datentypen sind das einzige, was Java davon abhält, eine vollkommen objektorientierte Programmiersprache zu sein. Java ist deshalb streng genommen eine hybride Programmiersprache.

Durch die Verwendung primitiver Datentypen kann man immer dann Ressourcen (Rechenleistung, Arbeitsspeicher) sparen, wenn man den äquivalenten komplexen Datentyp nicht unbedingt benötigt.

Datentyp Größe Literal (Bsp.) Default-Wert Beschreibung
byte 1 Byte 42 0 Speichert ganze Zahlen zwischen -128 und 127
short 2 Bytes 42 0 Speichert ganze Zahlen zwischen -32.768 und 32.767
int 4 Bytes 42 0 Speichert ganze Zahlen zwischen -2.147.483.648 und 2.147.483.647
long 8 Bytes 42 0 Speichert ganze Zahlen zwischen -9.223.372.036.854.775.808 und 9.223.372.036.854.775.807
float 4 Bytes 42.0f 0.0 Speichert Fließkommazahlen mit 6 bis 7 Stellen
double 8 Bytes 42.0d 0.0 Speichert Fließkommazahlen mit bis zu 15 Stellen
boolean 1 Bit true/false false Speichert Wahrheitswerte (true oder false)
char 2 Bytes 'a' 0 / null-Character Speichert einzelne Symbole/Zeichen oder ASCII-Werte

Komplexe Datentypen

⚠️ Dieser Absatz greift inhaltlich vor, falls du dich noch nicht mit Klassen und Objekten beschäftigt hast!

Dieser Abschnitt kann sehr kurz gehalten werden: Klassen sind komplexe Datentypen - alle Klassen. Da abstrakte Klassen und Interfaces letztendlich auch Typen sind, die nur von Instanzen echter Klassen angenommen werden, sind auch sie komplexe Datentypen.

💬 Arrays spielen in Java eine Sonderrolle - auch sie sind ein komplexer Datentyp.

Wrapper-Klassen

(oder engl.: wrapper classes)

Zu allen primitiven Datentypen bietet die Java Class Library passende Wrapper-Klassen an. Diese halten Werte vom entsprechenden Datentyp, bieten aber auch nützliche Methoden an.
Es gibt somit zu jedem primitiven Datentyp einen entsprechenden komplexen Datentyp. Instanzen dieser Wrapper-Klassen werden mit einer abgekürzten Sytax erzeugt (Integer i = 42; - also ohne new-Operator):

Integer i = 42;
System.out.println("i hat den Wert " + i + ".");
System.out.println("Der Maximal-Wert für einen "
        + "Integer ist: " + Integer.MAX_VALUE);
System.out.println("1" + 1);
System.out.println(Integer.parseInt("1") + 1);

Ausgabe:

i hat den Wert 42.
Der Maximal-Wert für einen Integer ist: 2147483647
11
2

Diese Wrapper-Klassen benutzt man nur dann, wenn man sie benötigt (wegen der extra Fähigkeiten) oder es muss (siehe 🔭 Generics).