Kurz erklärt
Die explizite (oder implizite) Umwandlung eines Werts von einem Datentyp in einen anderen — z. B. von int zu double oder umgekehrt.
Genauer
"Widening" (z. B. int → double) passiert automatisch, da dabei keine Information verloren geht. "Narrowing" (z. B. double → int) muss explizit erzwungen werden, da dabei Präzision verloren gehen kann: int i = (int) 3.9; ergibt 3, der Nachkommaanteil wird abgeschnitten, nicht gerundet.