Java-Einführung: Syntax, Typen, Generics, Speicherverhalten und Unit-Tests