Как упомянул Eugene Aristarhov Шилда, Блоха и Хорстманна оставить на справочники. Эккеля можно , нужно прочитать потом, а для обучения я бы посоветовал Head First JavaКэти Сиерра, Берт Бейт - для новичка самое то основы Java объясняются довольно хорошо
+. Если прям совсем новичок и Java первый ООП язык или первый язык программирования вообще. Аж в картинках всё, визуально, наглядно и сильно разжевано. После C++ для меня, имхо, оказалась слишком детской).
Eugene Aristarhov: ну это да , я когда с java начинал знакомиться о программирование имел совсем смутное представление и для меня эта книга хорошо зашла)
Если уже есть опыт в других ЯП, посмотрите в сторону Джошуа Блох «Effective Java».
Я по ней разбираюсь. Если возникают вопросы - моментально гуглю недостающие знания.
А все эти структуры/конструкции и так понятны, без знания языка.
Однако не могу не согласиться с предыдущими ораторами. Шилдт тоже хорошую книгу написал.
Лучше Хорстманн, Эккель и Блох, а Шилдта оставьте как справочник. Там много просто описания классов и их методов, а это и скучно, и не все пригодятся, и при современных IDE всё это помнить необязательно - главное знать в какую сторону искать.