Желательно чтобы как для тех, у кого уже имеется значительный опыт ООП в других языках (в том числе Perl), понимание того, что такое модули/пакеты, байткод, разновидности типизации и прочей лабуды, на которую обычно отводится по полкниги (а книга пишется для индуса, который на входе ничего не знает о программировании вообще, а на выходе уже клепает энтерпрайзные формочки).
Ну и сводка изменений языка от версии к версии JDK.
Авторы, ISBN, ссылки на скачать без смс и регистрации welcome.