Klausur-Tricks
Trick 1 — Cast macht Truncation, kein Round: (int) 3.99 = 3, NICHT 4. Für Round: Math.round().
Trick 2 — Integer-Division bei int / int: 5 / 2 in Java = 2. Mindestens ein Operand muss double sein für 2.5.
Trick 3 — Zahlen-Literale kennen:
- Java:
5 ist int, 5L ist long, 5.0 ist double, 5f ist float
- Python:
5 ist int, 5.0 ist float (kein Unterschied long/int)
Trick 4 — parseInt bei Whitespace/Komma: Java NumberFormatException, Python int() trimmt Whitespace aber kein Komma.
Trick 5 — Auto-Widening Reihenfolge (Java):
byte → short → int → long → float → double
char → int → ...
Trick 6 — Boolean-Konversion:
- Java: kein Auto-Cast Zahl ↔ boolean. Brauchst
x != 0 explizit.
- Python: 0/leer = False, alles andere = True (truthiness)
Trick 7 — Floor vs. Truncation bei negativen Zahlen:
(int) -3.5 = -3 (Truncation, Richtung 0)
Math.floor(-3.5) = -4 (Floor, Richtung minus unendlich)
Trick 8 — Overflow bei Cast:
int big = 300;
byte small = (byte) big; // -56 (!)
byte hat nur 8 Bit (-128 bis 127). 300 passt nicht → bit-Überschneidung. Kein Compile-Fehler, sondern Bug zur Laufzeit.
Trick 9 — Konkatenation vs. Addition (Java):
String s = "Wert: " + 1 + 2; // "Wert: 12"
String t = "Wert: " + (1 + 2); // "Wert: 3"
Java wertet von links aus. Erste Konkatenation macht alles String, danach Klebezeichen.
Trick 10 — Vergleich Strings vs. Zahlen:
"5" == 5 // Compile-Fehler in Java
"5" == 5 # False (verschiedene Typen, kein Auto-Cast)
"5" == str(5) # True
Wo brauchst du Casting?
- User-Input: Konsole liefert immer String, Zahl muss geparsed werden
- JSON / API: Werte aus dem Netz oft als String, müssen konvertiert werden
- Datenbanken: SQL liefert manchmal Strings (vor allem aus Free-Text-Feldern)
- Datei-I/O:
fs.readFile liefert String, Zahlen in CSV/TXT brauchen Parse
- Mathematische Operationen: Float-Division statt Integer-Division
- Type-Annotation in TypeScript:
as Type ist auch ein Cast
Faustregel: an jeder Sprach-/System-Grenze (Konsole, Datei, Netzwerk, DB) brauchst du Cast. Innerhalb deines eigenen Codes weniger.