I personally quite liked Java: The Complete Reference by Herbert Schildt – as the name suggests, it covers most of the topics relevant to Java developers, including some outdated ones.
Head First Java by Kathy Sierra is also a decent introduction to the language, though much more limited and outdated.
Oracle also has on-line Java tutorial which I regularly visit during development. However the content is more scattered than in a book.
Introduction to Java Programming: http://www.ntu.edu.sg/home/ehchua/programming/java/J1a_Intro...
There are more materials.
I'm reading Think Java: http://greenteapress.com/wp/think-java/
so far so good, I like it for it's size. I wanted an introductory text that wasn't 1000 pages.
If you tell me why you would like to learn Java, then I could help you find the appropriate resources.
After you get some Java under your belt try Effective Java and Java Concurrency in Practice. Also I read the Javadocs for all the built in libraries like java.util [1] and the Javadocs for the stream api [2]. After that I read the language spec, and the memory model spec.
1: https://docs.oracle.com/javase/8/docs/api/java/util/package-... 2: https://docs.oracle.com/javase/8/docs/api/java/util/stream/p...