„Hi, Amigo!“

„Hi Ritschie!“

„Du beherrschst die Grundlagen der Java-Syntax bereits, also möchte ich dir jetzt ein paar weitere Details geben.“

„Heute sprechen wir über primitive Typen und wie viel Speicherplatz sie benötigen. Dieses Wissen wird dir noch nützlich sein, vielleicht sogar heute noch. Hier sind die grundlegenden Datentypen:“

Typ Größe,
Bytes
Wertebereich Standardwert Beschreibung
byte 1 -128 .. 127 0 Die kleinste ganze Zahl, 1 Byte
short 2 -32,768 .. 32.767 0 Kurze Ganzzahl, 2 Bytes
int 4 -2*109 .. 2*109 0 Ganzzahl, 4 Bytes
long 8 -9*1018 .. 9*1018 0L Lange Ganzzahl, 8 Bytes
float 4 -10127 .. 10127 0.0f Dezimalzahl, 4 Bytes
double 8 -101023 .. 101023 0.0d Dezimalzahl, die doppelt so groß ist wie eine float-Zahl, 8 Bytes
boolean 1 true, false false Boolescher Typ (nur true oder false)
char 2 0..65,535 '\u0000' Zeichen, 2 Bytes, alle vorzeichenlosen Werte
Object 4 Beliebige Referenz oder Null. null Speichert Referenzen auf Instanzen von Object oder Klassen, die von Object abstammen

„Ich möchte dir mehr über jeden Typ erzählen.“

„Der Typ byte ist der kleinste Ganzzahl-Typ. Variablen dieses Typs belegen nur 1 Byte Speicherplatz. Ein Byte kann Werte im Bereich zwischen -128 und 127 speichern.“

„Warum brauchen wir so einen kleinen Datentyp? Warum können wir nicht immer int verwenden?“

„Das könnten wir. Aber wenn du große Arrays erstellst, deren Elemente nie Werte größer als 100 speichern müssen, warum solltest du dann nicht diesen Typ verwenden? Ergibt das einen Sinn?“

„Ein short ist doppelt so lang wie ein byte und speichert ebenfalls nur ganze Zahlen. Die größte positive Zahl, die dieser Typ peichern kann, ist 32.767. Die größte negative Zahl, die er speichern kann, ist -32.768.“

„Der Typ int ist dir bereits bekannt. Es kann ganze Zahlen im Bereich von ±2.000.000.000 speichern.“

„Der Typ float wurde für reale (Dezimal-)Zahlen geschaffen. Er ist 4 Bytes groß.“

„Dezimalzahlen werden in einem ziemlich interessanten Format gespeichert.“

„So kann die Zahl 987654.321 zum Beispiel als 0.987654321*106 dargestellt werden. Das heißt, dass sie im Speicher als zwei Zahlen dargestellt werden kann: 0.987654321 (Mantisse) und 6 (Zehnerpotenz).“

„Wofür brauchen wir das?“

„Diese Vorgehensweise gibt uns die Möglichkeit, 4 Bytes zu verwenden, um Zahlen zu speichern, die viel größer sind als die Werte, die ein int speichern kann. Dazu müssen wir auf Genauigkeit verzichten. Nur ein Teil dieser Bytes wird für die Speicherung der Mantisse verwendet, was bedeutet, dass diese Zahlen nur 6-7 Dezimalstellen speichern. Kleinere signifikante Dezimalstellen werden verworfen.“

„Diese Zahlen werden auch als Gleitkommazahlen (floating-point numbers) bezeichnet. Daher stammt auch die Bezeichnung float für diesen Datentyp.

„Ach so.“

„Der Datentyp double ähnelt dem Typ float, ist aber doppelt so lang (daher der Name) und nimmt 8 Bytes ein. Er kann eine größere Mantisse und mehr signifikante Dezimalstellen aufnehmen. Wenn du reelle Zahlen speichern musst, verwende nach Möglichkeit immer diesen Typ.“

char ist ein hybrider Datentyp. Seine Werte können sowohl als Zahlen (die addiert oder subtrahiert werden können) als auch als Zeichen interpretiert werden. Dies ist möglich, weil auch Zeichen, die eine visuelle Darstellung haben, vom Computer im Wesentlichen als Zahlen betrachtet werden. Und es ist bequemer, sie als Zahlen zu behandeln. Noch etwas: Der Datentyp char ist immer positiv. Er kann keine negativen Werte aufnehmen.

„Der Datentyp boolean ist ein logischer Typ, der nur zwei Werte speichern kann: true (wahr) oder false  (falsch).“

„Obwohl er in diesem Diagramm genannt ist, ist der Typ Object kein primitiver Datentyp. Object ist die Basisklasse für alle Klassen in Java. Erstens werden alle Klassen davon abgeleitet und enthalten daher ihre Methoden. Zweitens kann eine Object-Variable Referenzen auf Objekte beliebigen Typs speichern, einschließlich null (eine Nullreferenz).“

„Ich habe heute viel gelernt. Danke für die Lektion, Ritschie.“