Java Grundlagen

Datentypen

In Java gibt es mehrere unterschiedliche Datentypen. Dies ist wichtig um in Programmen genau anzugeben, wie das Programm mit den Werten umgehen soll und wie viel Speicher vorbelegt werden muss.

Zahlen

Ganzzahlen

Typname größter Wert kleinster Wert Länge Endung
byte 127 -128 8 Bits
short 32767 -32768 16 Bits
int 2147483647 -2147483648 32 Bits  I
long 9223372036854775807 -9223372036854775808 64 Bits L

Die Berechnung mit Zahlen, die zu lang sind werden vom Compiler mit einer Fehlermeldung bestraft. Soll zum Beispiel eine Zahl mit mehr als 10 Stellen berechnet werden, so reicht der Standardwert int nicht aus.

Aus diesem Grund muss  der Datentyp mit long benannt werden.

Dieses Programm wird mit einer Fehlermeldung abgestraft, der besagt, dass die Nummer zu lang ist.

wird ein L hinter die Zahl gesetzt, erscheint keine Fehlermeldung mehr, da dem Programm mitgeteilt wird, dass es sch bei der Zahl um den Datentyp long handelt, der diese Größe handhaben kann.

Gleitkommazahlen

Typname größter positiver Wert kleinster positiver Wert Länge Endung
float ~3.4028234663852886E+038 ~1.4012984643248171E-045 32 Bits  F
double ~1.7976931348623157E+308 ~4.9406564584124654E-324 64 Bits  D

Möchten wir, dass Java mit Gleitkommazahlen, statt mit Ganzzahlen rechnet können wir dies im Programm dadurch darstellen, dass wir eine Kommastelle eingeben.

Ausgabe: 0

wir haben java nicht gesagt, dass wir die Dezimalstellen sehen wollen.

Ausgabe: 0.2

Durch das setzen des Punktes weiß Java nun, dass es sich um eine Gleitkommazahl handelt.

Ausgabe: 0.2

Durch die Datenendung F für Float weiß Java auch hier, dass es sich um eine Gleitkommazahl handelt.

Zeichen

Char

Der Datentyp char dient in erster Linie dazu Unicode Zeichen zu notieren. An dieser Stelle werde ich jetzt keine Liste aller Unicodes notieren. Diese gibt es zu Genüge. Beispielsweise aber ein paar:

\u0024 $ Dollarzeichen
\u0061 a Kleiber Buchstabe a
\0009 tab Setzt einen Tabulator
\‘ Einzelnes Hochkomma
\“ Doppeltes Hochkomma
\\ \ Backslash

Zeichenketten / String

Zeichenketten können mehrere Zeichen des Datentyps char darstellen. Zeichenketten werden innerhalb von doppelten Hochkommata ausgegeben.

Typumwandlungen

Implizite Typumwandlung

Möchten wir Daten unterschiedlichen Typs mit einander interagieren lassen z.B. damit rechnen, so ist es wichtig zu wissen, dass Java nur Daten gleichen Typs miteinander rechnen lässt- Jedoch ist Java nicht ganz dumm und erkennt automatisch, wenn ein kleiner Wert in einen großen hineinpassen würde.

Hier erkennt Java, dass der Wert 12 (Der ein integer ist, da er nicht benannt ist) auch in ein Long passt und wandelt diesen automatisch um. Andere Szenarien sind:

  • byte zu short
  • short zu int
  • int zu long
  • float zu double
  • char zu int, long, float oder double

Ausnahme!

Es gibt eine Ausnahme, welche im ersten Augenblick wie Schikane wirkt, wenn man den Hintergrund nicht kennt.

Dieses Programm würde eine Fehlermeldung wegen inkompatibler Typen Deklaration hervorrufen. Auf dem ersten Blick sind ja alle Datentypen gleich und müssten eigentlich implizit umgewandelt werden.

Aber Java hat eine strikte Vorgehensweise bei der Bestimmung  des Datentyps bei arithmetischen Operationen.

  1. Ist einer der Operanden (Werte) ein double? Wenn ja dann wird der andere Operanden auch zu double. Falls nicht dann
  2. Ist einer der Operanden (Werte) ein float? Wenn ja dann wird der andere Operanden auch zu float. Falls nicht dann:
  3. Ist einer der Operanden (Werte) ein long? Wenn ja dann wird der andere Operanden auch zu long. Falls nicht dann:
  4. Ist einer der Operanden (Werte) ein int? Wenn ja dann wird der andere Operanden auch zu int.

Bis hier hin und nicht weiter! Ob es einen short oder byte gibt prüft Java nicht mehr, da int der Standard-Datentyp für Zahlen in Java ist.

Entweder es wird auf short verzichtet, oder es muss eine explizite Umwandlung durchgeführt werden.

Explizite Typumwandlung

Die Explizite Typumwandlung hingegen wird nicht automatisch von Java übernommen, da die Resultate die ohne eine Typumwandlung erzeugt werden würden, meist nicht gewünscht sind.

Java geht davon aus, dass wir auch die Nachkommastellen dieser Rechnung sehen wollen und gibt eine Fehlermeldung aus, die uns auf die inkompatible Daten Deklaration hinweist.

Möchten wir explizit die Nachkommastellen schludern, so müssen wir Java mitteilen, welchen Datentyp der Wert erhalten soll. Dies geschieht, indem dieser in runden Klammern vor den Wert gesetzt wird.

Hier würde Java wissen, dass wir das wirklich wollen. Das Ergebnis wäre 12.

Ausnahme boolean

Die Datentyp Umwandlung von boolean (true oder false) in einen anderen Datentyp ist unmöglich.

0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

vier × drei =