Effective Java. Programming Language Guide, 2001, Joshua Bloch
Designed to help Java programmers make the most effective use of the Java programming language and its fundamental libraries, this updated edition includes more than 50 essays, each of which conveys one rule. Helping programmers sidestep common misconceptions and errors, each rule captures best practices that have been tested in the real world. Just one of the key features in this book are the code examples that illustrate many useful design patterns and idoms. Another key feature is the advice on what not to do. Providing examples of what practices to avoid helps programmers side step common misconceptions and errors. While the second edition will cover all of the classic topics developers have come to rely on- objects, classes, libraries, methods, and serialization; new to this edition will be the coverage on generics, metadata, autoboxing, concurrency utilities, memory model, enumerations, and more. The book is based on the philosophy that clarity and simplicity are of paramount importance. The concise essays teach Java programmers of all levels how to write correct, clear, reusable, and effective code. Learning the art of Java programming, like most other disciples, consists of learning the rules and then learning when to violate them. With this book in hand, Java programmers will truly learn the rules and then learn when to violate them.