Без серьезной практики учиться сложно, но я первую теоретическую базу по яве получил из этих книг.
Герберт Шилдт - «Java 8. Руководство для начинающих»
Герберт Шилдт - «Java 8. Полное руководство»
Полное руководство больше выглядит как справочник, но в руководстве для начинающих вполне неплохо объясняется теория и довольно много наглядных примеров, есть даже «домашние задания», которые вырастают в небольшой проект по мере получения знаний и выполения.