Primitive Datentypen
Du möchtest die verschiedenen Datentypen in Java besser verstehen? Im folgenden Beitrag zeigen wir dir, welche Typen es gibt und wann diese verwendet werden.
Inhaltsübersicht
Java Datentypen – Was ist ein Datentyp?
Grundsätzlich gibt es acht primitive Datentypen, alle anderen Datentypen werden Objekte genannt. Ein Objekt ist ein größerer Block an Daten, der aus vielen internen Teilen besteht und bei dem Klassen miteinbezogen werden. Fürs erste betrachten wir aber nur die acht primitiven Datentypen.
Aber was ist überhaupt ein Datentyp? Um Datentypen zu verstehen, musst du wissen, dass ein Computerspeicher beliebig viele Bitmuster enthält. Bitmuster stellen die Informationen, die ein Computer trägt, mithilfe verschiedener Kombinationen der Zahlen null und eins dar. Damit diese Muster einen Sinn machen, müssen Datentypen verwendet werden. Ein Datentyp ist ein Schema für die Verwendung von Bit, um Werte darzustellen. Dabei müssen diese Werte nicht aus Zahlen bestehen, sondern können jede Art von Daten, die ein Computer verarbeiten kann, enthalten.
Primitive Datentypen Java
Die acht primitiven Datentypen haben folgende Namen: byte, short, integer, long, float, double, character und boolean. Jeder dieser Typen besitzt eine festgelegte Anzahl an Bit. Zusätzlich lassen sie sich in Gruppen unterteilen. Zahlen sind in Java so wichtig, dass sechs der acht primitiven Datentypen numerisch sind. Das bedeutet, dass jeder von diesen, bis auf den character und den boolean, Zahlenwerte speichert.
Numerische primitive Datentypen lassen sich in ganzzahlige Typen und Gleitpunkttypen unterteilen. byte, short, integer und long bilden somit die ganzzahligen Typen und float und double die Gleitpunkttypen.
Nun kann man sich aber fragen, warum es für numerische Werte mehrere Datentypen gibt. Bei der effizienten Programmierung ist es ausschlaggebend, wie viel Speicher das Programm in Anspruch nimmt.
Java long und Java byte
Das bedeutet, wenn man zum Beispiel einem numerischen Datentyp eine kleine Zahl zuweisen möchte, dann wäre es reine Speicherverschwendung dafür den long Datentyp zu verwenden. Denn der long Datentyp besitzt eine Größe von 64 Bit! Das heißt, er kann ganze Zahlen im Bereich von -263 bis 263-1 darstellen.
Warum sollte man also einen so großen Datentypen verwenden, wenn für eine kleine Zahl, zum Beispiel 112, der Typ byte vollkommen ausreichen würde? Der byte hat eine Größe von 8 Bit und besitzt einen Wertebereich von -128 bis +127. Deshalb ist es wichtig zu wissen welchen Typ man verwenden sollte, um möglichst viel Speicher zu sparen.
Bei kleinen Programmen macht das kaum einen Unterschied. Solltest du aber mal an einem größeren Projekt arbeiten, ist es sehr wichtig, wie du mit diesen Datentypen umgehst. Der geläufigste ganzzahlige primitive Datentyp ist dabei der integer, da er einen angemessenen Wertebereich mit 32 Bit besitzt.
Die primitiven Datentypen haben unterschiedliche Aufgaben. So kann man, wenn man zum Beispiel einem Datentyp eine Kommazahl zuweisen möchte, keinen long oder byte verwenden.
Java double und Java float
Diese Aufgabe wird von dem Typ float und double übernommen, wobei in Programmen Gleitpunktliterale einen Dezimalpunkt und keine Kommata haben. Da beide die gleiche Aufgabe haben, ist es natürlich klar, dass beide unterschiedliche Größen besitzen.
Somit ist double mit 64 Bit doppelt so groß wie float mit 32 Bit und besitzt daher einen viel größeren Wertebereich. So wird float oftmals als ein Gleitpunkttyp mit „einfacher Genauigkeit“ bezeichnet, während double Gleitpunkttyp mit „doppelter Genauigkeit“ genannt wird. In Java ist es gängig fast immer den Gleitpunkttyp double für Kommazahlen zu verwenden und float nur bei besonderen Umständen, zum Beispiel wenn man eine Datei mit 32 Bit float-Daten verarbeiten möchte. Versucht man diese Gleitpunkttypen zu vermischen, kann es zu Datenverlust führen.
Wenn du explizit ein Float-Literal, also eine Zeichenfolge die einen Float-Wert darstellt, anfordern möchtest, musst du am Ende der Kommazahl ein großes oder kleines „f“ schreiben. Das gleiche gilt auch für ein Double-Literal, indem du ein großes oder kleines „d“ am Ende setzt.
Java char und Java boolean
Es bleiben nur noch zwei primitive Datentypen übrig. Der primitive Datentyp character, oder auch einfach char, speichert Zeichendaten. In den meisten Programmiersprachen verwendet der Datentyp char nur 8 Bit, in Java werden jedoch 16 Bit benutzt, damit auch Schriftzeichen anderer Sprachen als Schriftzeichen aus dem Englischen dargestellt werden können. Eine char Variable kann allerdings nur ein einzelnes Zeichen repräsentieren. Um mehrere Zeichen aneinandergereiht speichern zu können, musst du Objekte verwenden, die aus char-Daten konstruiert werden. Ein Beispiel dazu wären Strings, die aus einem oder mehreren char-Daten bestehen. Zeichenliterale des Datentyps char werden immer von einem einfachen Hochkomma eingeschlossen. Zeichen oder Zeichenketten, die von doppelten Anführungszeichen eingeschlossen werden, sind Strings und kein primitiver Datentyp.
Der letzte primitive Datentyp ist der boolean. Dieser Datentyp ist, der wahrscheinlich einfachste von allen und seine Aufgabe besteht darin, ein true oder false auszugeben. Du hast richtig gehört, ein Boole’scher Wert kann nur einen von zwei Werten haben: true – oder false. In einem Javaprogramm bedeuten die Worte true und false immer Boole’sche Werte. Dieser Wert kann in einem einfachen boolean gespeichert und für verschiedene Ausdrücke verwendet werden. Zum Beispiel, wenn man eine Methode in einem Programm besitzt, die überprüft ob die Sonne scheint oder nicht. Wenn die Sonne tatsächlich scheint, dann würde der Boole’sche Wert dieser Methode true sein, ansonsten wäre er false.
Wir hoffen, du hast jetzt einen guten Überblick über die unterschiedlichen Datentypen bekommen.