Datentypen Flashcards
(17 cards)
Tafelübung
Logische Operatoren
!, &&, I I, ^
! = nicht && = und || = oder ˆ = entweder – oder
Tafelübung
switch-case
switch (x) { case 1: System.out.println("1"); break; case 2: System.out.println("2"); break; default: System.out.println("anderer Wert"); break; }
Trifft ein case zu, werden alle darauf folgenden Anweisungen
ausgeführt, bis ein break oder return folgt.
Tafelübung
Zweidimensionale Arrays
int[][] a = new int[2][3];
int[][] b = new int[][] {{ 1, 2, 3 },{ 4, 5, 6 }};
Zeile zuerst
Tafelübung
Zweidimensionale Arrays
Schleife
Tafelübung
for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { // Arbeiten mit a[i][j] } }
Tafelübung
Zweidimensionale Arrays
Laufzeit Spaltenweise vs Zeilenweise
Spaltenweise 3x so lange
Tafelübung
Logische Operatoren
BITWISE
~ Einerkomplement (bitweises Negieren)
| bitweises ODER (OR)
& bitweises UND (AND)
^ bitweises EXKLUSIV-ODER (XOR)
» Rechtsschieben (Nachschieben des Vorzeichen-Bits von links)
»> Rechtsschieben (Nachschieben von Nullen von links)
«_space;Linksschieben
Tafelübung
toBinär
String toBin(int x) { String result = ""; while (x > 0) { result = (x & 1) + result; x = x >> 1; } return result; }
Tafelübung
Wertebereiche
ganzzahlige Werte
Byte - 8 bit (1 Byte) -128…127
Short - 16 bit (2 Byte) -32768…32767
int - 32 bit (4 Byte)
Long 64 bit (8Byte)
Tafelübung
Wertebereiche
Gleitpunktwerte
float - 32 bit (4 Byte)
double - 64 bit (8 Byte)
Tafelübung
Wertebereiche
Sonstige
char - 16 bit (2 Byte)
boolean - 8 bit (1 Byte)
Tafelübung
Parameterübergabe in JAVA
Call-by-value Die Werte der aktuellen Parameter werden evaluiert und als Kopien übergeben (bei Referenzdatentypen werden Kopien der Referenz übergeben). Eventuelle Veränderungen der formalen Parameter betreffen nur diese Kopien und gehen nach Beendigung der Methode verloren. Die als aktuelle Parameter eingesetzten Variablen (zahl) werden nicht verändert.
Call-by-reference nicht möglich
KLAUSURAUFGABE SS18
Was ist der syntaktische und was der semantische Unterschied zwischen impliziter und expliziter
Typenumwandlung (type cast)?
• syntaktisch:
syntaktisch heisst formell richtig
explizit benötigt (cast) - implizit nicht
• semantisch:
heisst inhaltlich richtig
bei expliziter Typenumwandlung können Informationen verloren gehen Bsp. int -> Byte
bei implizitem cast gehen keine Informationen verloren
KLAUSURAUFGABE SS18
Was versteht man unter einer Wrapper-Klasse? Welche Auswirkung ergibt sich durch die Verwendung
einer Wrapper-Klasse aus Sicht der objekt-orientierten Programmierung?
• Definition:
• Auswirkung:
• Definition:
Wrapper-Klassen sind Referenzdatentypen für primitive Datentypen.
• Auswirkung:
Durch sie können primitive Datentypen in generischen Klassen verwendet werden.
KLAUSURAUFGABE SS18
Gegeben sei der Ausdruck a + b als Teil eines syntaktisch und semantisch korrekten Java-
Programms.
Markieren Sie in der folgenden Aufzählung nur die Datentypen, die als Ergebnistyp dieses Ausdrucks
in Frage kommen könnten:
byte; int; Integer; double; Float; String; char
; Character; Referenz
int, Integer, double, float, String, Referenz (Speicheradressen können addiert werden)
Tafelübung
Generische Klassen
Def. & Sinn
Verallgemeinern des Datentyps, sodass der Datentyp erst beim
Erzeugen des entsprechenden Objekts festgelegt wird.
Tafelübung
Generische Klassen
Wie Klasse anlegen?
class ListItem { private E data; public void setData(E s) { this.data = s; } public E getData() { return this.data; } }
Tafelübung
Generische Klassen
Wie Objekt anlegen?
ListItem item = new ListItem();
oder
ListItem item = new ListItem<>();