I. BASIC CLASSES
1, "Thinkingjava", the first place to get started is to establish the correct concept.
2, "Core Java", I did not read the system, this book closer to practice, more API introduction, the same, update more frequently.
Second, Advanced class
1, "Effective Java", after familiar with the grammar, API, you need to know best practices and traps, no better than this one.
2, "Java puzzlers", through the puzzle to introduce some of the scraps you may not notice, as fun reading is also good
3, "Deep Java Virtual machine", translation general, but can not read, it is best to combine the latest JVM specifications to read.
Iii. Specific areas
1. Network Programming:
(1) O ' Reilly's "Java NiO", many people recommend, I personally feel the general, basically just a more detailed documentation of the API, O ' Reilly Java series many are like this.
(2) Recommend this "fundamental networking in Java", to teach you how to do Java network programming, and introduce a lot of background knowledge, and even introduced a variety of best practices, network programming model and Java socket in different platform differences and so on.
2. Concurrent Programming:
(1) "Java Concurrency in Practic", the concurrency domain must read classics.
(2) "Java Concurrent Programming: Design principles and Patterns" is also the work of Doug Lea. (3) "Java Threads", introductory reading.
3, Mode and design
1, "design mode", Gof Classic.
2, "design mode fine solution", should have the latest version, personally think more suitable for getting started.
3, "Head First design mode", easier to get started reading.
4. "Enterprise Application Architecture Model"
5, "Analysis mode-Reusable object Model"
6, "Model-oriented Software architecture", the domestic seemingly translated 3 volumes, absolutely classic, but poor translation.
7, "refactoring-improve the existing code design", want to write good code must read.
8, "Reconstruction and Mode"
4. Methodology
1, "Agile Software Development"
2, "Test-driven development", you do not have to TDD, but you must learn to do unit testing.
3, "Agile Java", can also be used as a primer for Java.
4, "Rapid software development"
5, "Object-oriented Analysis and design", oo design must read.
6, "Unix Programming Art", Open your eyes.
5. Outside Java
1, "UNIX Network Programming", learning Network programming must read.
2, "C + + network programming" up and down two volumes, introduced Ace, but the application of various modes of the introduction of the very value of the first reading.
3, "Joel said software", programming culture
4, "People's Month myth", "Human pieces"
5, "Effective programmer", give me a great inspiration of a book.
6. The path of programmer's cultivation
7, the construction and interpretation of computer programs, must read
8, "Introduction to Algorithms", can be used as reference books
9, "in-depth understanding of computer systems"
10, "Compiling principle" dragon book, the latest version is explained in Java.
Java from small white to architecture normal University cattle must read books