02.03 Primitive Datentypen

Wie Sie im letzten Kapitel gelernt haben, unterscheidet man in Java zwischen primitiven Datentypen und Objekten/Klassen. Über Objekte und Klassen lernen Sie später im Kapitel Objekt-Orientierte-Programmierung mehr. Dieses Kapitel beschäftigt sich mit den primitiven Datentypen in Java.

Ein primitiver Datentyp ist – wie der Name schon vermuten lässt – eine äußerst simple Darstellung eines bestimmten Wertes. Von der Art des Datentyps hängt es ab, welcher Wert dargestellt werden kann. Auch hat jeder Datentyp einen Standardwert, den ein Attribut (siehe Kapitel 04.03.02 Attribute und Kapitel 02.09 Arrays) dieses Typs immer dann erhält, wenn es nicht explizit einen Wert zugewiesen bekommt.

Name Größe Wertebereich Standardwert
boolean 1 Byte true oder false false
char 2 Bytes Ein Zeichen (z. B. „A“) – 16 Bit Unicode 0
byte 1 Byte Ganzzahl zwischen -2^7 und 2^7-1 (-128 bis 127) 0
short 2 Bytes Ganzzahl zwischen -2^15 und 2^15-1 (-32768 bis 32767) 0
int 4 Bytes Ganzzahl zwischen -2^31 und 2^31-1 (-2147483648 bis 2147483647) 0
long 8 Bytes Ganzzahl zwischen -2^63 und 2^63-1 (-9223372036854775808 bis 9223372036854775807) 0
float 4 Bytes Gleitkommazahl zwischen 1.40239846E-45 und 3.40282347E+38 0.0
double 8 Bytes Gleitkommazahl zwischen 4.94065645841246544E-324 und 1.79769131486231570E+308 0.0

Dabei ist zu beachten, dass in Java Nachkommazahlen durch einen Punkt separiert werden, und nicht etwa wie im Deutschen durch ein Komma. Zum besseren Verständnis ein kleines Beispiel:

public class Test {

  public static void main(String[] args) {

    byte b = 127;
    short s = 32767;
    int i = 2147483647;
    long l = 9223372036854775807L;
    float f = 3.40282347E+38F;
    double d = 1.79769131486231570E+308;
    char c = 'A';
    boolean bool = true;
    System.out.print("Ein byte: ");
    System.out.println(b);
    System.out.print("Ein short: ");
    System.out.println(s);
    System.out.print("Ein int: ");
    System.out.println(i);
    System.out.print("Ein long: ");
    System.out.println(l);
    System.out.print("Ein float: ");
    System.out.println(f);
    System.out.print("Ein double: ");
    System.out.println(d);
    System.out.print("Ein char: ");
    System.out.println(c);
    System.out.print("Ein boolean: ");
    System.out.println(bool);
  }
}

Bei näherem Betrachten dieses Codes fallen Ihnen sicherlich zwei bis dato unbekannte Gegebenheiten auf.

1.) Verwendung von System.out.print anstelle von System.out.println. Das ln von println steht für „line“. Also „gebe Zeile aus“. Ohne abschließendes ln bedeutet dieser Befehl nur „gebe aus“ – ohne neue Zeile. Also schreibt System.out.print den Inhalt in die aktuelle Zeile, während System.out.println am Ende das Signal sendet, eine neue Zeile zu beginnen.

2.) Bei den Datentypen float und long befindet sich nach dem zugewiesen Wert noch jeweils ein Buchstabe. Dieser steht für den jeweiligen Datentyp – l(ong) und f(loat). Dies ist notwendig, da Java bei Ganzzahlen standardmäßig von ints (Integern) und bei Gleitkommazahlen von doubles ausgeht. Mit diesen Suffixen weißt man den Compiler eindeutig an, einen long oder ein float zu verwenden. Alternativ kann dieser Effekt – zumindest bei Datentypen mit einem kleineren Wertebereich wie dem standardmäßig verwendetem Typ – auch erreicht werden, indem man den gewünschten Datentyp in Klammern vor den Wert schreibt. Dadurch wird ein primitiver Datentyp oder eine Klasse in einen anderen Datentyp oder eine andere Klasse nach Möglichkeit konvertiert. Dieser Vorgang wird auch casten genannt. Mehr zum Thema casten lernen Sie im Kapitel über Vererbung.

byte b = (byte)2;
float f = (float)3.40282347E+38;

3 Replies to “02.03 Primitive Datentypen”

  1. xhx

    Ich laß einmal (ich denke, es war eh hier im Java Buch Blog) von einem bestimmten Fachbegriff, der mir nun leider entfallen ist.

    Dieses Wort bezeichnet Werte, die nicht verändert werden können (sprich: alle primitiven Werte). Sie können zwar mit einer Wertzuweisung überschrieben werden, haben aber keine veränderbaren Eigenschaften.

    Ich hoffe, es ist klar, was ich zu beschreiben versuche.
    Danke, sollte mir jemand das Vokabel nennen können.
    lg.

  2. Stefan Kiesel

    Hallo xhx,

    das Einzige, was mir spontan hierzu einfällt, sind die bereits genannten primitiven Datentypen (siehe Seitentitel ;-)). Aber ich denke mal nicht, dass es sich hierbei um das gesuchte Wort bzw. die gesuchten Wörter handelt.

    Grüße
    Stefan

Schreibe einen Kommentar