See DefinitiveJavaBooks.