Z książek najczęściej polecane są te dwie pozycje:
1) "Rusz głową: Java"
http://helion.pl/ksiazki/java-rusz-glowa-wydanie-ii-kathy-sierra-bert-bates,javrg2.htm
2) "Java. Podstawy"
http://helion.pl/ksiazki/java-podstawy-wydanie-ix-cay-s-horstmann-gary-cornell,javpd9.htm
Ja jak zaczynałem swoją przygodę z Javą wybrałem 1 pozycję. Książka prezentuje zdecydowanie odmienne i że tak powiem bardzo obrazkowe podejście do tematu, ale za razem mega przyjemnie się ją czyta i dobrze wchodzi w głowę, także zdecydowanie polecam.
Drugą z wyżej wymienionych książek zacząłem czytać nie dawno. Trochę w ramach powtórki, trochę z ciekawości dla porównania. Jeśli miałbym wymienić zalety i wady po przeczytaniu jakichś 200 stron to mogę powiedzieć, że: jako, że książka sama w sobie jest dłuższa i raczej w porównaniu do pierwszej uboga w obrazki to prezentuje szerszy zakres materiału i wchodzi bardziej w szczegóły każdego z poruszanych tematów. Jest jednak odrobinę trudniejsza do strawienia. Do zalet należy fakt, że książka ta posiada drugi tom, który porusza zagadnienia bardziej zaawansowane i niejako łączy się z pierwszym w pewną spójną całość. Bardzo fajne są też wstawki przy praktycznie każdym zagadnieniu, które porównują jak dana rzecz wygląda w Javie, a jak w C++ - więc to myślę, że może Cię zainteresować.
Najlepiej zrobisz jak przejdziesz się do jakieś księgarni przeglądniesz obie pozycje i wybierzesz tą, która bardziej Ci odpowiada.
Z materiałów po za książkami polecam tutoriale Dereka Banasa (w języku angielskim). Radzę jednak najpierw samemu trochę poczytać, bo mimo, że tutorial zaczyna od czystych podstaw to tępo Dereka jest zabójcze i w 20 minut potrafi przerobić ogromną część materiału :)
Pozdrawiam,