Effective Java (Third Edition)
Review by Sven Woltmann
In this book, Joshua Bloch has compiled the most important dos and don’ts of Java programming: Best practices that help you write efficient, readable, and maintainable – and therefore future-proof – software.
The book is primarily aimed at experienced Java programmers – good knowledge of the language is required.
Some of the practices you probably already use in your daily life; others may be new to you and help you take your skills to the next level.
The book contains 90 articles (“items”) divided into 11 topics. A lot of material – but you can get to grips with it bit by bit. The items each represent a self-contained unit.
Each article contains specific, easy-to-understand advice, accompanied by concise, clear source code examples.
Every Java programmer should have read this book. I recommend reading the book once entirely, and then, if you have to solve specific tasks in your daily programming routine, consult the corresponding articles again.
When buying this book (especially if you purchase second-hand), make sure that you acquire the current, third edition! The second edition is based on Java 6 and is no longer up-to-date.
🎧 Suitable as an audiobook? No, because of the numerous code examples.
Other Recommendations From This Book’s Genres
Java Concurrency in Practice
Java Puzzlers: Traps, Pitfalls, and Corner Cases
Java Generics and Collections
Core Java: Fundamentals (Volume 1)
Core Java: Advanced Features (Volume 2)
Mastering Lambdas: Java Programming in a Multicore World
Concurrent Programming in Java: Design Principles and Pattern, 2nd Edition
The Pragmatic Programmer: From Journeyman to Master
Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java
Clean Code: A Handbook of Agile Software Craftsmanship
Refactoring: Improving the Design of Existing Code
Clean Craftsmanship: Disciplines, Standards, and Ethics
The Programmer’s Brain: What Every Programmer Needs to Know About Cognition
Working Effectively with Legacy Code
Design Patterns: Elements of Reusable Object-Oriented Software