Ein Computer verwendet für interne Berechnung lediglich Binärzahlen. Was sich jedoch ständig ändern kann ist die Interpretation dieser Bitfolgen. Wir können sie zum Beispiel als Ganzzahl (1, 3, -4), Gleitkommazahl (3.14, 2.7, -1.0) oder Wahrheitswert (Wahr/Falsch bzw. einfach 1/0) verwenden. Indem wir den Werten in unseren Programmen bestimmte Datentypen zuordnen, können wir die genaue Auswertung von Operatoren und ganzen Ausdrücken bestimmen.
Standardmäßige vorhandene Typen die nur einen simplen Wert und keinerlei eigene Funktionalität enthalten nennt man primitive Typen. In Java ist es auch möglich zusammengesetzte Typen zu erstellen, die mehrere Werte kapseln und Funktionalitäten beinhalten können, allerdings wird dieses Thema erst in einem späteren Kapitel erklärt.
Weiters ist anzumerken, dass bis Java in der Version 7 alle Typen vorzeichenbehaftet („signed“) sind. Vorzeichenlose („unsigned“) Typen wie sie zum Beispiel in C++ existieren gibt es in Java nicht (Spezialfall siehe boolean
).
Folgende primitven Datentypen sind in Java standardmäßig vorhanden:
Wie der Name schon sagt stellt der Datentyp ein Byte im Speicher da, das dabei als Ganzzahl interpretiert wird. Mit 8 Bit ist also eine Wertebereich von -128 bis +127 abdeckbar.
byte a = 120; byte b = -3;
short
verhält sich genau wie byte
allerdings mit einer Größe von 16 Bit und damit einem Wertebereich von -32768 bis +32767.
short c = 8; short d = -2048;
Wie byte
und short
, aber 32 Bit.
int e = 262144; int f = -5;
Wie byte
, short
und int
, aber mit 64 Bit. Um ein long
deutlich von den kleineren Typen abzuheben, wird ein l
bzw. L
direkt an die Werte drangehängt. Es wird strengstens zu einem großen L
geraten, da bei einem kleinen l
die Gefahr der Verwechslung mit 1
in gewissen Schriftarten besteht. Dies ist aber nur bei jenen Werten notwendig, für die ausdrücklich ein long
erforderlich ist und ein kleinerer Typ wie z.B. int
nicht ausreicht.
long g = 549755813888L; long h = -12225;
Eine Gleitkommazahl im IEEE754 Standard mit einer Größe von 64 Bit. Wichtig hierbei ist, dass der Vorkommaanteil vom Nachkommaanteil durch einen Punkt (.
) und nicht durch ein im deutschen Sprachraum übliches Komma (,
) getrennt werden.
double i = 0.000000123456789; double j = -12345.789;
Wie double
, allerdings mit einer Größe von 32 Bit. Ähnlich wie bei long
muss auch hier ein f
bzw. F
nachgestellt werden, da ansonsten alle Konstanten als double
interpretiert werden.
float k = -12.234F; float l = 0.000123F;
Stellt einen Wahrheitswert (Wahr oder Falsch) dar, die Größe ist nicht eindeutig festgelegt. Bei der konstanten Zuweisung werden die Schlüsselwörter true
(Wahr) und false
(falsch) verwendet.
boolean m = true; boolean n = false;
Repräsentiert ein 16 Bit Unicode Zeichen. Dabei steht der Buchstabe immer unter einfachem Hochkomma.
char o = 'A'; char p = 'Ö';