Effective Java is one of the all-time classics in Java literature. It shaped how generations of developers learned to write better, safer, and more maintainable Java. But its last edition covered Java up to version 9 — and since then, the platform has been transformed in a way that even Joshua Bloch could not foresee back then.
In this session we will revisit a curated set of Effective Java recommendations and give each one a verdict, e.g. "still valid", "improved", "for free", or "obsolete". Which practices hold up exactly as written? Which ones got better tools? Which were replaced by new features such as records, sealed interfaces, or pattern matching? And which warnings are now the JVM’s problem — not yours?
The running example is a real Spring Boot 4 application built with hexagonal architecture. Every principle is demonstrated in working code, not just in slides of theory. Come for the classics. Leave with updated defaults and a clear sense of what “effective” actually means in today's Java. For generations to come. ❤️