Tech Archive Help

02 Java – Datentypen

Datentypen sind Schemen für die Verwendung von Bits. Mit ihnen lassen sich Werte, abhängig von der Größe der jeweiligen Datentypen, darstellen. Z.B. ist eine Ganzzahl ein anderer Datentyp als eine Fließkommazahl.

Grundsätzlich wird zwischen 2 Arten von Datentypen unterschieden.

Primitive Datentypen

Primitive Datentypen werden auch einfache oder elementare Datentypen genannt. In Java existieren nur 8 solcher Datentypen. Die folgende Tabelle zeigt eine Übersicht aller primitiven Datentypen.

Datentyp

Kategorie

Wrapper-Klasse

Größe in Bit

Wertebereich

Beschreibung

byte

Ganzzahlig

java.lang.Byte

8

-128 bis +127

Zweierkomplement-Werte

short

Ganzzahlig

java.lang.Short

16

-32.768 bis +32.767

Zweierkomplement-Werte

int

Ganzzahlig

java.lang.Integer

32

-2.147.483.648 bis +2.147.483.647

Zweierkomplement-Werte

long

Ganzzahlig

java.lang.Long

64

-9.223.372.036.854.775.808 bis +9.223.372.036.854.775.807

Zweierkomplement-Werte

float

Gleitkommazahl

java.lang.Float

32

-3,40282347 * 1038 bis +3,40282347 * 1038 (8 Nachkommastellen)

32-Bit IEEE 754-Gleitkommazahl

double

Gleitkommazahl

java.lang.Double

64

-1,79769313486231570 * 10

bis +1,79769313486231570 * 10308 (17 Nachkommastellen)

64-Bit IEEE 754-Gleitkommazahl mit doppelter Genauigkeit

char

Character-Datentyp

java.lang.Character

16

0 bis +65.535

Unicode-Zeichen (UTF-16)

boolean

Boolescher Datentyp

java.lang.Boolean

Abhängig von der JVM

true oder false

Boolescher Wahrheitswert

Ganzzahlen

Der Compiler interpretiert solche Literale standardmäßig als Integer-Ganzzahlen. Damit der Compiler erkennt, dass es sich um einen Datenwert vom Typ long handelt, muss dies mit einem L am Ende gekennzeichnet werden.

System.out.println(8273469237);
System.out.println(8273469237L);

Neben der standardmäßigen Dezimalschreibweise, kann auch die binäre, oktale oder hexadezimale Schreibweise angewendet werden.

Zahlensystem

Präfix

Binär

0b

Oktal

0

Hexadezimal

0x

Folgendes Beispiel zur Veranschaulichung. Die Syntax wird im nachfolgenden Kapitel 3 – Variablen genauer erklärt.

int decimal = 42; int binary = 0b1101; int octal = 023; int hexadecimal = 0x2B;

Gleitkommazahlen

Um Gleitkommazahlen darstellen zu können, wurden die Datentypen float und double eingeführt. Soll der Restwert berechnet werden, wird dafür der Operator % verwendet. Das folgende Beispiel zeigt 4 Varianten für die Kennzeichnung einer Kommazahl.

System.out.println(1 / 10.0); System.out.println(1 / 10.); System.out.println(1 / 10f); System.out.println(1 / 10d);

Was wird bei folgendem Beispiel auf der Konsole ausgegeben?


System.out.println(1 / 10);

Regulär würde man im Kopf auf das Ergebnis 0.1 kommen. Da in Java jedoch standardmäßig mit Ganzzahlen gearbeitet wird, wird alles, was nach dem Komma steht abgeschnitten. Das Ergebnis ist also 0.

Was ergibt 0.1 + 0.2?


~0.30000000000000004

Gleitkommazahlen können auch die wissenschaftliche Notation repräsentieren. Diese kann direkt angewendet werden.

double d = 1e-10;

Datentyp char

Der Datentyp char ist für die Darstellung eines einzelnen Zeichens verantwortlich. char steht als Abkürzung für character. Intern werden die Zeichen als Unicode (16-Bit-Dualzahl) dargestellt. Mit anderen Worten: Jedes Zeichen repräsentiert intern eine Ganzzahl. Daher kann ein char auch als int gespeichert werden.

int at1 = '@'; char at2 = '@'; System.out.println(at1); // 64 System.out.println(at2); // @

Escape Sequenzen

Der Compiler interpretiert einige Zeichen als Escape-Sequenzen. Eine Escape-Sequenz ist eine spezielle Zeichenfolge, die durch ein Escape-Zeichen eingeleitet wird und dazu dient, spezielle oder nicht druckbare Zeichen darzustellen.

Folgende Tabelle zeigt einige Escape-Sequenzen.

Escape Sequenz

Beschreibung

\t

Horizontaler Tabulator

\r

Carriage Return (Wagenrücklauf)

\n

Zeilenumbruch

\uXXXX

Unicode XXXX (hexadezimal)

\b

Backspace (Rückschritt)

\f

Form Feed (Seitenumbruch)

\'

Hochkommata

\"

Anführungszeichen

\\

Backslash

Datentyp boolean

Vergleiche werden mit dem Typ boolean realisiert. Beispielsweise um zu prüfen, ob eine Zahl größer ist, als eine andere. Die einzigen Literale die ein boolean annehmen kann, sind true (wahr) oder false (falsch).

boolean isRunning = false; boolean isJumping = true;

Referenzdatentypen

Referenzdatentypen werden im Verlauf der späteren Kapitel genauer beschrieben. Referenztypen werden häufig auch als Instanzen oder Objekte, seltener auch als komplexe Datentypen bezeichnet. Objekte repräsentieren konkrete Exemplare von Bauplänen (Klassen). Zur Vereinfachung wird in den folgenden Kapiteln der Begriff „Objekt“ bzw. „Objekte“ verwendet.

Ein Objekt kann im Grunde alles sein, was einem in den Sinn kommt. Beispielsweise ein Ball, ein Mensch, eine Aktivität oder sogar eine Dimension. Solche Objekte werden durch Eigenschaften (Objektvariablen) und Funktionalitäten (Objektmethoden) beschrieben.

Last modified: 19 August 2024