Já doporučuji Učebnice jazyka Java od Pavla Herouta. Bude to pak chtít ještě dostudovat novější věci (streamy, lambdy, try-with-resources a další drobnosti), ale ten základ platí pořád.
Heroutova učebnice je velmi dvousečný nástroj, pozor na ni. Herout napsal skvělou (až geniální) učebnici C. A pak napsal učebnici Javy stylem: a teď si naše rutiny z C přepíšeme do Javy. Ok, funguje to a pro céčkaře je to možná dobrý mezikrok, ale Herout vás nenaučí programovat objektově a už vůbec vás nenaučí myslet objektově.
Herout, pokud si pamatuji dobře ukazuje dědění na tom, že třída úsečka dědí z třídy bod, protože úsečka přece obsahuje dva body... Dědění úsečky z bodu by mělo být v každé učebnici objektového programování, ale jako příklad špatného uchopení objektů.
Pecinovský používá divnou českou terminologii, kterou nepoužívá nikdo jiný, a jeho knížky jsou klasické školní učebnice – „naučíme se Javu, ale pěkně školsky, po našem, způsobem a s nástroji, které nikdo jiný nepoužívá“. V Mistrovství v Java je půlka věcí, které nemá smysl se dnes učit (což je vlastně pozoruhodný výkon, vzhledem k tomu, jak je Java konzervativní) – applety, AWT, servlety, Swing. (Swing a servlety se ještě používají, ale není to nic, čím by se měl zabývat začátečník.)
Nevím, jestli Pecinovský nevydal něco aktualizovaného, pokud ne, tak tam, kde opouští obecné základy, tak už velmi zastaralý, s tím souhlasím jednoznačně. Nicméně než se Pecinovský dostal k těm věcem, které dneska nemají smysl, tak ty obecné věci dělal s důrazem na myšlení v objektech. Pecinovský byl první, kdo v češtině napodobil ten styl, který začal být populární a moderní (např. Thikink in Java). Jestli je v češtině modernější učebnice psaná tímto stylem, netuším, ale ten styl bych rozhodně doporučoval.