Core Java 2 (the latest version has reached the seventh edition, Total 2 volumes): basic
Thinking in Java (the latest version has reached the fourth edition): Improve
Effective Java: Advanced (Highly recommended)
The JAVATM Virtual machine specification, Second Edition (deep analysis of the JVM's operating mechanism): difficult
The Java Language Specification (official specification): Difficult
Enterprise-level development (after learning EJB):
Mastering EJB
Effective Enterprise Java
Expert one on one Java development without EJB (disgusting of the popular framework spring authors)
Expert One-on-one EE Design & Development (disgusting of the popular framework spring authors)
Design pattern (time to see, can understand how much, you need to read n times):
Design mode-the basis of reusable object-oriented software: Gof's classic, I have seen not 10 times, each time have a different experience.
The Eternal Way of Architecture: a book between architecture and philosophy. The language is very beautiful. The concept of patterns in our software design is borrowed from this book.
"Java EE core model": The Java EE Enterprise Design pattern, is a summary of the experience of several generations of programmers
Refactoring: Improving the design of existing code: the classic work of refactoring by Martin Flower, an oo godfather.
"Code reading": Ms's authoritative writer, is also a classic.
Java and Patterns: A good book written by the Chinese about design patterns. A little wordy.
Software Engineering (The following two are praised as "software engineering" of the double, to understand that they require a certain amount of project experience and practice):
The Myth of man and Month
"People's Pieces"
Java Classic Books recommended