Kurz erklärt
Typparameter in spitzen Klammern (<T>), mit denen eine Klasse oder Methode für beliebige Typen wiederverwendbar wird, ohne die Typsicherheit aufzugeben.
Genauer
Ohne Generics müsste eine Collection mit dem allgemeinen Typ Object arbeiten und Werte beim Herausholen manuell zurückcasten — fehleranfällig, da Typfehler erst zur Laufzeit auffallen. Mit List<String> erzwingt der Compiler dagegen schon beim Kompilieren, dass nur String-Objekte hineinkommen.