Einführung zu primitiven Datentypen in Java

Primitive Datentypen sind die Grundlage für Datenverarbeitung und -speicherung in Java, da sie einfache Werte effizient und ohne den Overhead von Objekten speichern. Dieser Artikel bietet eine Einführung in die grundlegenden Eigenschaften jedes primitiven Datentyps und erläutert Speicherbedarf sowie Wertebereiche.

Java verfügt über acht primitive Typen: vier Integer-Typen (byte, short, int, long), zwei Gleitkomma-Typen (float, double), einen Zeichentyp (char) und einen booleschen Typ (boolean).

Im Gegensatz zu Objekten, die in Java immer als Referenzen auf komplexere Speicherstrukturen verwaltet werden, werden primitive Datentypen wie int, float, double oder boolean direkt auf dem Stack oder im Hauptspeicher abgelegt. Dies bedeutet, dass die Werte ohne zusätzlichen Speicheraufwand gespeichert werden, da sie nicht als separate Objekte mit Metadaten oder Methoden behandelt werden. Primitive Datentypen benötigen dadurch weniger Speicherplatz und ermöglichen schnellere Zugriffszeiten, da kein objektorientierter Overhead, wie etwa das Verwalten von Referenzen oder das Anlegen von Objekten im Heap-Speicher, erforderlich ist.

Jeder primitive Typ in Java ist mit einer zugehörigen Wrapper Klasse verknüpft. Die Wrapper-Klassen ermöglichen also eine objektorientierte Nutzung der primitiven Datentypen und unterstützen das sogenannte Autoboxing und Unboxing, bei dem Java automatisch primitive Werte in ihre Wrapper-Objekte umwandelt und umgekehrt. Alle Wrapper-Klassen in Java befinden sich im java.lang-Package (und müssen nicht importert werden).

Integer-Typen

Die Integer-Typen von Java (byte, short, int, long) speichern ganze Zahlen. Jeder Integer-Typ belegt eine bestimmte Menge an Speicherplatz und ist daher für verschiedene Anwendungsfälle geeignet:

Datentyp Speicherplatz Wertebereich Beschreibung Wrapper-Klasse
byte 8 bits -128 bis 127 Eignet sich für kleine Ganzzahlen und spart Speicherplatz Byte
short 16 bits -32,768 bis 32,767 Verwendet für Ganzzahlen, wenn int zu groß ist Short
int 32 bits -231 bis 231 - 1 Standard-Datentyp für Ganzzahlen in Java Integer
long 64 bits -263 bis 263 - 1 Eignet sich für sehr große Ganzzahlen Long

Fließkomma-Typen

Java stellt zwei Fließkomma-Datentypen zur Verfügung, die ideal für wissenschaftliche Berechnungen, Grafikprogrammierung und Anwendungen sind, in denen Dezimal- und Bruchwerte benötigt werden.

Datentyp Speicherplatz Wertebereich Beschreibung Wrapper-Klasse
float 32 bits ±3.4 x 10-38 bis ±3.4 x 1038 Wird für Gleitkommazahlen mit einfacher Genauigkeit verwendet Float
double 64 bits ±1.7 x 10-308 bis ±1.7 x 10308 Standard-Datentyp für Gleitkommazahlen mit doppelter Genauigkeit Double

Char-Typ

Der Char-Typ von Java speichert einzelne Unicode-Zeichen mit 16 Bits (Wertebereich von 0 bis 65535). Dadurch kann er jedes beliebige Zeichen aus dem Unicode-Standard speichern, was die Internationalisierung und die Unterstützung mehrerer Sprachen ermöglicht.

Unicode verwendet sogenannte "Surrogat-Paare" (zwei char-Werte zusammen) für Zeichen jenseits der 16-Bit-Grenze: Durch diese Erweiterung kann Java Unicode-Zeichen über die 16-Bit-Grenze hinaus unterstützen, was vollständige Internationalisierung und mehrsprachige Unterstützung ermöglicht.

Datentyp Speicherplatz Wertebereich Beschreibung Wrapper-Klasse
char 16 bits Unicode-Zeichen: 0 bis 65535 Speichert einzelne Unicode-Zeichen Character

Boolean-Typ

Der boolean Typ von Java speichert einen von zwei Werten: wahr oder falsch und belegt nur 1 Bit Speicherplatz.

Datentyp Speicherplatz Wertebereich Beschreibung Wrapper-Klasse
boolean 1 bit `true` oder `false` Speichert Wahrheitswerte Boolean