Every Java programmer must read and understand the following books. 1. Effective Java 2. Concurrency in practice Effective Java: This book is authored by Joshua Bloch. He took the major role in authoring the java.util package which is [collection framework] one of the java core libraries. He explains the best practices that every programmer should consider while writing java programs. Some of them are: Contract between hashcode() and equals() of Object class when programmer overrides one of these methods in their classes Exceptions concurrency: Inter thread communication, synchronization etc Immutable Objects The above points are few among others. Concurrency in practice: This book gives complete explanation about how efficient concurrency is achieved in java programs using concurrency utility classes which were introduced in Java 5 version. This book is authored by: Brian Goetz Tim peierls Joshua Bloch Joseph Bowbeer David Holmes and Doug Lea ...