Если бы вы воспользовались поиском на Тостере, вбив в него заголовок вашего вопроса, то увидели бы несколько сотен результатов. Большая часть из них советует
одни и те же учебники. Учебник даст вам нужные знания в нужном порядке.
много спецификаций: Java 8, Java 9.
Это не спецификации, а версии. Разница между версиями обычно умещается в одну страницу текста. До сих пор применимы знания по Java 1.2.