Java Schnellstart – Datentypen
In vielen Skriptsprachen ist es nicht mehr nötig einen Datentypen für eine Variable anzugeben. Andere Programmiersprachen, wie bspw. auch Java, benötigen jedoch einen festen Datentyp. Dieser muss beim definieren von Variablen angegeben werden.
Was sind Datentypen?
Alle Daten deines laufenden Java-Programmes (z.B. Hintergrundfarben, in Variablen gespeicherte "Email-Adressen" usw.), die du nicht explizit auf der Festplatte speicherst, werden temporär im Arbeitsspeicher festgehalten.
Bevor ein Programm diesen Speicher beanspruchen kann, muss dieser zunächst beim Betriebssystem reserviert werden.
Das Problem dabei ist, dass Java nicht weiß, wie viel Speicher für eine Variable (z.B. email) reserviert werden muss. Stell dir vor, Java würde für deine Email-Adresse "hallo@test.de" 90% des Arbeitsspeichers reservieren. Das ist höchst ineffizient, da die Datenmenge (deine Email) sehr klein ist. Für wichtigere Programme steht dann dementsprechend weniger Arbeitsspeicher zur Verfügung.
Um das zu vermeiden, benutzt Java Datentypen. Datentypen geben an, um welchen Typ von Daten es sich handelt. Wir können bei Variablen bspw. den Datentyp int verwenden, um eine Zahl von minus zwei Milliarden bis zwei Milliarden zu speichern. Der Datentyp int ist immer 32-Bit groß. Dadurch kann Java genau prognostizieren, wie viel Speicher Java für diese Variable reservieren muss.
int dieAntwort = 42; // Diese Variable benötigt 32-Bit im Arbeitsspeicher (RAM)
Datentypen als Rückgabetyp
Verwenden wir Datentypen in Methoden, so nennt man diese auch Rückgabetypen.
Schreiben wir zum Beispiel folgende Methode:
public static int wasIstDieAntwort()
{
return 42;
}
Im obigen Beispiel ist "int" der Rückgabetyp. Unsere Methode "wasIstDieAntwort" versichert uns damit, dass die Methode immer eine Zahl vom Typ "int" zurückliefert.
Dadurch können wir die Zahl 42 problemlos an die Main-Methode zurückgeben. Hier speichern wir die Rückgabe in der Variable "antwort" (Datentyp: int).
class Main {
public static void main(String[] args)
{
int antwort = wasIstDieAntwort();
}
public static int wasIstDieAntwort() {
return 42;
}
}
Man unterscheidet generell zwischen primitiven und komplexen Datentypen.
Primitive Datentypen
Primitive Datentypen sind fester Bestandteil in Java. Du kannst diese immer verwenden, wenn du mit Java entwickelst. Zu den primitiven Datentypen zählen unter anderem:
- int,
- float,
- double,
- boolean.
Die o.g. Datentypen werden wir gleich näher erläutern.
Nachfolgend findest du eine Übersicht zu den primitiven Datentypen:
// Das sind alles primitive Datentypen
int sinnDesLebens = 42;
float sinnDesLebensGenau = 42.42f;
double sinnDesLebensGanzGenau = 42.4242;
long sinnDesLebensInLangForm = 4242424242424242L;
boolean istZweiUndVierzigDieAntwort = true; // Boolean kann true (wahr) oder false (falsch) speichern
Komplexe Datentypen
Komplexe Datentypen sind nicht fester Bestandteil der Programmiersprache Java. Sie wurden im Nachhinein durch dich oder einen anderen Entwickler festgelegt.
Java bietet von Hause aus einige komplexe Datentypen an. Zu diesen Typen zählen unter anderem Math sowie String. Komplexe Datentypen zeichnen sich dadurch aus, dass sie häufig über Methoden verfügen, die du benutzen kannst.
Nachfolgend ein Code-Beispiel zu "String" sowie "Math":
String text = "Das ist ein Text";
System.out.println(text); // Ausgabe der Variable "text"
Math matheObjekt = new Math();
System.out.println(matheObjekt.Random()); // Ausgabe einer zufälligen Kommazahl zwischen 0 und 1
Welche Datentypen sollte ich kennen?
int
Für das Speichern einer Ganzzahl benutzt du int. Ein int kann Zahlen von circa. minus zwei Milliarden bis plus zwei Milliarden speichern.
int dasIstEinInt = 3;
byte
Ein Byte kann Ganzzahlen speichern, aber nur von -128 bis 127:
byte dasIstEinByte = 3;
char
Kann ein einzelnes Zeichen speichern:
char zeichen = 'a';
float
Kann Kommazahlen mit einer Genauigkeit von 7 Nachkommastellen abbilden:
float kommaZahl = 42.054345f;
double
Kann Kommazahlen mit einer Genauigkeit von 15 Nachkommastellen abbilden:
double kommaZahl = 42.5464645423463d;
String
String ist ein komplexer Datentyp und kann im Vergleich zu Char ganze Texte, also mehrere Zeichenfolgen speichern:
String dasIstEinText = "Das ist ein Text.";
Code-Aufgabe: Fehlerbehebung
Ein Fahrradhändler hat versucht eine eigene App für seinen Fahrradladen zu programmieren. Leider kennt er sich nicht mit Datentypen aus. Er beauftragt dich daher, die Fehler aus seinem Code zu beheben, sodass sich der Code (fehlerfrei) ausführen lässt.
Deine Aufgabe: Was hat der Fahrradhändler falsch gemacht?
[lp_spoiler title="Lösung anzeigen" class="da"]
Eine mögliche Lösung:
class Main {
public static void main(String[] args) {
int anzahlFahrräder = 59;
String impressum = "Dieser Fahrradladen gehört Max Mustermann";
float preisProFahrrad = 590.99f;
boolean volljährig = true;
}
}
Du könntest auch byte oder short statt int nehmen. Allerdings ist int hier besser, weil du nicht weißt, ob Max zum Beispiel in der Zukunft expandiert und sich dann 1500 neue Fahrräder für seinen Online-Handel zulegt.
[/lp_spoiler]
Fazit zu Datentypen
In vielen anderen Programmiersprachen musst du keinen Datentyp definieren. Hingegen wird dann das eigenständige Speichermanagement zum Problem.
Java nimmt dir diese Problematik durch Datentypen bereits ab. Es gibt viele weitere Datentypen, die du benutzen kannst. Über "Klassen" kannst du dir sogar eigene Datentypen erstellen, wenn es keine vordefinierten Datentypen für dein Problem gibt. Aus dieser Lektion solltest du die gängigsten Datentypen wie bspw. int, String, float usw. mitnehmen. Diese werden dir in den nächsten Lektionen immer wieder begegnen.