Joshua Bloch finally updated his popular book Effective Java for Java 7, 8 and 9. The previous edition was one of the most popular books among professional Java developers, and I couldn’t wait to finally read the updated 3rd edition.

I got this book 2 weeks ago, and it more than fulfilled my expectations. It is packed with best practices and detailed descriptions of the finer details of the Java language. Every developer should at least read the chapters about generics and lambdas.

Disclaimer: The links in this post are affiliate links, and I will earn a small commission if you make a purchase. This commission comes at no additional cost to you.

Quick Review

Joshua Bloch does an amazing job explaining best practices and providing detailed insights into how and when to use the different Java features. Effective Java is a must-read for every professional Java developer.

5 out of 5 stars!

Who should read this book

Every professional Java developer who wants to write efficient and maintainable Java code.

Detailed Review

You can get a lot of books about Java, and several of them do a good job explaining the different language features. But as a professional developer, you know that this is just the first step. There is a huge difference between knowing a feature and understanding when and how to use it to build an efficient and maintainable application.

If you read the previous editions of Joshua Bloch’s book Effective Java, you know that he did a great job explaining best practices and showing how to write readable and maintainable code. That doesn’t change with the 3rd edition which he updated to include the features and paradigms introduced in Java 7, 8 and 9. Especially the chapters about interface design, generics and lambdas are a must-read for every Java developer.

Detailed And Specific Advice In 90 Items

Over the last 2 weeks, I read the book from cover to cover, and I highly recommend you do the same. It was entertaining and highly educating.

But you don’t have to take this approach. The book consists of 90 items, and you can read one of them if you’re looking for specific advice. Each item can stand on its own and provides detailed explanations of a specific Java feature, how to use it and when to prefer a different solution.

This structure makes the book easy to use and extremely helpful in your daily work. Like the previous edition, this book will become one of my go-to references if I need advise to implement a complex task or to design a new API. I’m sure I will reread some of the more advanced items about lambdas and generics shortly.

Here’s a list of the main chapters which thematically group the 90 items:

Creating and destroying objects

Methods common to all objects

Classes and interfaces

Generics

Enums and annotations

Lambdas and Streams

Methods

General programming

Exceptions

Concurrency

Serialization

The names of some chapters might seem pretty basic. But I highly recommend reading all of them. Each chapter provides detailed insights into the Java language and how it’s intended to be used. Even after working as a Java developer and architect for more than 15 years, I got some inspiration or learned something new in each and every chapter.

I highly recommend the 3rd edition of Effective Java to every professional Java developer!