Java stellt acht primitive sowie zahl­rei­che komplexe Da­ten­ty­pen bereit. Diese legen fest, welche Werte in einer Variable ge­spei­chert und wie sie ab­ge­bil­det werden. In Java wird jeder Variable ein spe­zi­fi­scher Data Type zu­ge­wie­sen.

Welche Da­ten­ty­pen gibt es in Java?

In jeder Pro­gram­mier­spra­che exis­tie­ren ver­schie­de­ne Da­ten­ty­pen, die spe­zi­fi­sche Objekte und Ope­ra­tio­nen de­fi­nie­ren. Obwohl sie sich oft ähneln, gibt es teils deutliche Un­ter­schie­de im Funk­ti­ons­um­fang. Wenn du etwa Python vs. Java ver­gleichst, bemerkst du neben Ge­mein­sam­kei­ten viele Dif­fe­ren­zen, die eine Sprache für bestimmte Projekte ideal machen. Java nutzt zwei Arten von Da­ten­ty­pen: primitive und komplexe (auch „Re­fe­renz­ty­pen“ genannt). Diese Java Data Types un­ter­schei­den sich in ihrer Größe und de­fi­nie­ren den Spei­cher­wert einer Variablen.

Während primitive Da­ten­ty­pen lediglich einfache Werte sichern, dienen Re­fe­renz­ty­pen dazu, kom­ple­xe­re Struk­tu­ren zu bauen sowie große Da­ten­men­gen zu verwalten. Wenn du Pro­gram­mie­ren lernen möchtest, ist es es­sen­zi­ell, die Typen zu kennen und ihren optimalen Einsatz zu verstehen. Das betrifft ei­ner­seits die Funk­tio­nen, an­de­rer­seits die ef­fi­zi­en­te Nutzung des Spei­cher­plat­zes.

Primitive Data Types in Java

Java bietet 8 primitive Data Types mit festen Wer­te­be­rei­chen. Diese lassen sich in vier Gruppen un­ter­tei­len: logische, integrale, Gleit­kom­ma- und Zeichen-Da­ten­ty­pen. Sie verfügen über keine Zu­satz­funk­tio­nen und werden als elementar be­zeich­net. Jeder Typ belegt eine fixe Anzahl an Bits. Hier sind die ele­men­ta­ren Java-Typen im Überblick:

  • boolean
  • byte
  • short
  • int oder integer
  • long
  • float
  • double
  • char

boolean

Der Java Boolean ist kein nu­me­ri­scher Typ, sondern kennt nur zwei Zustände: true und false. Er prüft, ob eine Bedingung erfüllt ist oder nicht. Der Stan­dard­wert ist false. Als logischer Datentyp belegt er 1 Bit. Die Syntax sieht so aus:

boolean booleanVar;
java

byte

byte ist ein in­te­gra­ler Datentyp (Zwei­er­kom­ple­ment) mit einer Größe von 8 Bit (1 Byte). Er hilft dabei, in großen Arrays Spei­cher­platz zu sparen. Sein Bereich liegt zwischen -128 und 127, der Stan­dard­wert ist 0. Syntax:

byte byteVar;
java

short

Auch short zählt zu den in­te­gra­len Data Types und dient der Spei­cher­op­ti­mie­rung in Arrays. Dieser Wert ist 16 Bit (2 Byte) groß und reicht von -32 768 bis 32 767. Stan­dard­mä­ßig ist er auf 0 gesetzt. So nutzt du short:

short shortVar
java

int oder integer

int ist ein weit ver­brei­te­ter in­te­gra­ler Datentyp mit 32 Bit (4 Byte). Er deckt Ganz­zah­len von -2 147 483 648 bis 2 147 483 647 ab. Der Stan­dard­wert ist 0. Die Syntax lautet:

int intVar
java

long

Der größte integrale Typ ist long. Er bietet einen Bereich von -9 223 372 036 854 775 808 bis 9 223 372 036 854 775 807 bei einer Größe von 64 Bit (8 Byte). Er kommt zum Einsatz, wenn int nicht mehr ausreicht, ver­braucht aber mehr Speicher. Stan­dard­wert ist 0. Syntax:

lomg longVar
java

float

float ist ein Gleit­kom­ma-Datentyp für reelle Zahlen (32 Bit) nach IEEE 754. Er hat einen Stan­dard­wert von 0,0 und bildet bis zu sieben De­zi­mal­stel­len ab. Da float weniger präzise als double ist, sollte er nur genutzt werden, wenn absolute Ge­nau­ig­keit zweit­ran­gig ist, um Platz zu sparen. Syntax:

float floatVar;
java

double

double ist etwa doppelt so präzise wie float, belegt 64 Bit und schafft bis zu 16 De­zi­mal­stel­len. Der Stan­dard­wert ist ebenfalls 0,0. Für Be­rech­nun­gen, die eine höhere Ge­nau­ig­keit verlangen, ist double die richtige Wahl. Wenn es absolut exakt sein muss, greife zur Klasse Big­De­ci­mal. Syntax:

double doubleVar;
java

char

char speichert einzelne Zeichen basierend auf dem Unicode-Satz, was die Por­ta­bi­li­tät über Platt­for­men hinweg sichert. Er benötigt 2 Byte. Der Wer­te­be­reich ent­spricht ASCII und liegt zwischen „\u0000“ (0) und „\uffff“ (65 535). Stan­dard­wert ist „\u0000“. Syntax:

char charVar
java

Java Data Types: Beispiele für komplexe Da­ten­ty­pen

Die zweite Gruppe bilden Re­fe­renz­ty­pen oder komplexe Da­ten­ty­pen, da sie auf Objekte verweisen. Meist werden sie (außer String) von Pro­gram­mie­rer:innen definiert. Sie können Methoden nutzen und den Wert null (leer) annehmen. Während primitive Typen klein­ge­schrie­ben werden, beginnen Re­fe­renz­ty­pen mit einem Groß­buch­sta­ben. Hier die wich­tigs­ten Vertreter:

Strings

Ein String ist eine Klasse zur Dar­stel­lung einer Zei­chen­ket­te. Im Gegensatz zum pri­mi­ti­ven char existiert die Folge als Objekt in java.lang. Mit Methoden der String-Klasse kannst du Zeichen prüfen, ver­glei­chen, suchen oder kopieren. Strings stehen immer in An­füh­rungs­zei­chen. Syntax:

<String_Typ> <string_variable> = "<stringsequenz>";
java

Ein An­wen­dungs­bei­spiel im Code:

// So erstellen Sie einen String ohne einen neuen Operator
String a = "Dies ist Ihr neuer String";
/ / So erstellen Sie einen String mit einem neuen Operator
String a1 = neuer String ("Dies ist Ihr neuer String");
java

Arrays

Arrays bündeln mehrere Werte in einer einzigen Variablen, statt für jeden Wert eine neue zu erstellen. Sie werden durch eckige Klammern definiert, während die Werte in ge­schweif­ten Klammern und durch Kommas getrennt stehen. Syntax:

datentyp[] arrayName = {Wert1, Wert2, Wert3,…};
java

Beispiel für ein Array mit Strings:

String[] farben = {"blau", "rot", "gelb", "lila"};
java

So erstellst du ein Array mit Ganz­zah­len:

int[] zahlen = {5, 10, 15, 20};
java

Klassen

In Java dienen Klassen als Baupläne für Objekte. Sie bestehen aus dem Klas­sen­na­men, Mo­di­fi­ka­to­ren und einem in ge­schweif­te Klammern gefassten Körper. In der Praxis sieht das so aus:

public class Main {
	int a = 10;
}
java

In­ter­faces

Ein Interface ist in Java eine abstrakte Struktur. Es dient als Schnitt­stel­le, über die eine Klasse Funk­tio­nen aufruft, sofern sie diese im­ple­men­tiert. In­ter­faces be­inhal­ten Kon­stan­ten und abstrakte Methoden. Syntax:

interface {
	abstrakte Methoden
}
java

Hier ein simples Beispiel zur Funk­ti­ons­wei­se:

interface Pizza {
	public void zutatenListe();
	public void zubereitung();
}
class Funghi implements Pizza {
	public void zutatenListe() {
		System.out.println("Champignons, Tomatensauce, Oregano, Mozzarella");
}
public void zubereitung() {
	System.out.println("Nach einer Viertelstunde ist die Pizza fertig gebacken");
}
}
class Main {
	public static void main(String[] args) {
		Funghi myFunghi = new Funghi();
		myFunghi.zutatenListe();
		myFunghi.zubereitung();
	}
}
java

Die Ausgabe mittels Java-Befehl System.out.println lautet:

Champignons, Tomatensauce, Oregano, Mozzarella
Nach einer Viertelstunde ist die Pizza fertig gebacken
java

Objekte

Objekte sind ebenfalls komplexe Da­ten­ty­pen. Sie sind Instanzen von Klassen, die über Methoden in­ter­agie­ren. Im Beispiel erzeugen wir Objekte in einer Main-Klasse:

public class Main {
	int a = 10;
public static void main(String[] args) {
	Main myObj1 = new Main();
	Main myObj2 = new Main();
	System.out.println(myObj1.a);
	System.out.println(myObj2.a);
	}
}
java

Die Ausgabe dazu:

10
10
java

Enums

Enums sind spezielle Klassen für un­ver­än­der­li­che Kon­stan­ten. Diese Variablen besitzen feste Werte, die nicht mo­di­fi­ziert werden können. Ideal für Variablen mit wenigen, klar de­fi­nier­ten Zuständen. Syntax:

enum Name_der_Klasse {
	WERT1,
	WERT2,
	WERT3
}
java
Zum Hauptmenü