There's a lot of consensus in the Java world about which books rise to the top of the Must Read list. At the risk of pointing out the obvious, here's a score of the books I've consulted, considered, or revisited most.
- Joshua Bloch, Effective Java (2nd Edition).
- Christian Bauer and Gavin King, Java Persistence with Hibernate.
- Brian Goetz with Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea, Java Concurrency in Practice
- Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software
- Steve McConnell, Code Complete: A Practical Handbook of Software Construction
- Martin Fowler with Kent Beck, John Brant, William Opdyke, and Don Roberts, Refactoring: Improving the Design of Existing Code
- Maurice Naftalin and Philip Wadler, Java Generics and Collections
- David Geary and Cay S. Horstmann, Core JavaServer Faces (3rd Edition)
- Eben Hewitt, Java SOA Cookbook
- Chet Haase and Romain Guy, Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java Applications
- Debu Panda, Reza Rahman, and Derek Lane, EJB 3 in Action
- Ira R. Forman and Nate Forman, Java Reflection in Action
- John Zukowski, The Definitive Guide to Java Swing (3rd Edition)
- Scott Oaks and Henry Wong, Java Threads (3rd Edition)
- Robert Sedgewick and Kevin Wayne, Algorithms (4th Edition)
- Christopher Steel, Ramesh Nagappan, and Ray Lai, Core Security Patterns: Best Practices and Strategies for J2EE™, Web Services, and Identity Management
- Steven Haines, Pro Java EE 5 Performance Management and Optimization
- Cay S. Horstmann and Gary Cornell, Core Java, Volume 1– Fundamentals (8th Edition)
- Cay S. Horstmann and Gary Cornell, Core Java, Volume 2– Advanced Features (8th Edition)
- James Gosling, Bill Joy, Guy Steele, and Gilad Bracha, The Java Language Specification
I'll be commenting on many of these in future posts. In the meantime, please feel free to click on "Leave a comment" and add your own favorites to the list!






