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