====== Primitive Datentypen ====== ===== Definition ===== Ein Computer verwendet für interne Berechnung lediglich [[theory:number_systems:representation|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''). ===== Arten ===== Folgende primitven Datentypen sind in Java standardmäßig vorhanden: ==== byte ==== 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 ==== ''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; ==== int ==== Wie ''byte'' und ''short'', aber 32 Bit. int e = 262144; int f = -5; ==== long ==== 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; ==== double ==== 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; ==== float ==== 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; ==== boolean ==== 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; ==== char ==== Repräsentiert ein 16 Bit Unicode Zeichen. Dabei steht der Buchstabe immer unter einfachem Hochkomma. char o = 'A'; char p = 'Ö'; ===== Automatische (implizite) Typumwandlungen ===== ===== Ziel =====