Начнем, конечно же, с руководств по самому языку. В этом разделе мы собрали четыре книги по Java:

Изучаем Java
Эта книга хороша прежде всего для начинающих программистов, выбравших Java своим первым языком. Она также отлично подойдет для тех, кто впервые решил разобраться с объектно-ориентированной парадигмой программирования. Для опытных программистов, в том числе из других ООП-языков, книга покажется слишком простой.
Написана она легко и интересно (как и другие книги Head First), так что вы вряд ли ее бросите от скуки и сложности.
Это, скорее, вводный материал, открывающий двери в мир Java. Чтобы получше узнать его, обязательно продолжайте обучение после завершения книги.

Java Concurrency in Practice
Работа с параллелизмом не так проста, как кажется на первый взгляд. И книга про параллелизм в Java тоже довольно тяжелая – ну, а чего вы хотели?
Автор разбирает множество подводных камней, о которых вы и не думали, и способы борьбы с ними.
Руководство основано на Java 6, поэтому уже немного устарело, однако все еще может успешно применяться на практике.