What you’ll learn in this training
In this 5-day compact course, you’ll learn all essential updates from Java 12 through 25 – comprehensive, hands-on, and with a clear focus on everyday project work.
In the first part (Java 12–17), you’ll see how modern language features like Records, Switch Expressions, Pattern Matching for instanceof, and Sealed Classes make your code more elegant and maintainable. Text Blocks simplify working with multi-line strings. You’ll also get an overview of the enhancements in core APIs and of ZGC and Shenandoah, production-ready since Java 15 – and learn how to confidently handle the most common stumbling block when upgrading to Java 17: Strongly Encapsulate JDK Internals.
The second part (Java 18–21) focuses on the features that shape modern Java applications: Virtual Threads fundamentally simplify highly scalable applications and allow blocking I/O without the traditional overhead. Record Patterns and Pattern Matching for switch make complex logic more concise and easier to express. The new Sequenced Collections API noticeably simplifies working with ordered data structures. Additional topics include API enhancements, Generational ZGC, and memory/performance optimizations.
In the third part (Java 22–25), you’ll dive into the innovations that make Java future-proof: Unnamed Variables & Patterns reduce boilerplate code without losing information. The Stream Gatherers API significantly simplifies complex stream aggregations. Scoped Values enable thread-safe context propagation – and the Foreign Function & Memory API offers a stable, secure way to access native libraries without the detours of earlier approaches. More highlights: Markdown Documentation Comments, Compact Source Files, Instance Main Methods, and advanced performance features.
The training is interactive and hands-on: short theory phases are followed directly by application in code – with examples from real-world projects. You’ll work together on concrete scenarios, discuss solutions, and anchor the knowledge sustainably in your team.
In numerous exercises, you’ll apply the new features directly and develop a deep understanding of how to use them to your advantage in everyday project work.
To wrap up, you’ll get a look at what’s coming next: Primitive Types in Patterns, Lazy Constants (formerly Stable Values), a redesigned Structured Concurrency API, and the ongoing evolution of the Vector API.
For a complete overview of all features, see my Java 17 features article, the Java 21 features article, and the Java 25 features article.
Target audience
This course is designed for Java developers who want to stay up to date and get to know the key updates in the LTS versions Java 17, 21, and 25 – compact and hands-on.
Whether you’re planning to migrate to Java 17 or 21, already using Java 25, or looking for a complete overview of all changes since Java 11 – this course gives you the knowledge you need to use modern Java features confidently and effectively in your projects.
Ideal for teams that have skipped several Java versions and now want to get up to date all in one go.
If you want to catch up on all three versions, you have a choice of two formats: this compact course covers all the content in 5 days – efficiently and without gaps. If you prefer more time for exercises, more room for discussion, or more individual focus areas, the Combined Training Java 17 + 21 + 25 (Intensive) is the better choice – the same material, spread over 6 days.
If you only want to catch up on two specific versions, you’ll find the right option in the Combined Training Java 17 + 21 or the Combined Training Java 21 + 25.