What you’ll learn in this training
In this two-day course, you’ll learn all the key enhancements introduced in Java versions 22 through 25 – compact, in-depth, and focused on practical use in real-world projects.
We’ll take a close look at modern language features like Unnamed Variables & Patterns, which improve code readability, and the new Foreign Function & Memory API, enabling secure and efficient access to native libraries. You’ll discover how to use Scoped Values for thread-safe context propagation and how Markdown Documentation Comments help you write more structured, readable documentation.
One of the highlights is the new Stream Gatherers API, which significantly simplifies complex stream aggregations. You’ll also learn how Compact Source Files and the new Instance Main Method make it easier to start new projects quickly.
Of course, we’ll also cover numerous API enhancements and important under-the-hood performance improvements, including how to synchronize virtual threads without pinning – a major step toward building highly scalable applications.
In hands-on exercises, you’ll directly apply the new features and gain a deep understanding of how to use them effectively in your projects.
At the end of the course, you’ll get a preview of what’s coming next – including Primitive Types in Patterns, instanceof, and switch, Lazy Constants (formerly Stable Values), the Vector API, and a redesigned Structured Concurrency API.
You’ll find a complete overview of all features in my Java 25 features article.
Target audience
This course is designed for Java developers who want to stay ahead of the curve – with a clear, practical, and well-structured approach.
Whether you’re upgrading from Java 17 or already working with Java 21 – Java 25, the new LTS version, is the ideal time to bring your team up to date. This course gives you the knowledge to make the switch safely and productively.
If you want to tackle Java 21 and 25 together, you’ll find the right combined course here.
Agenda
We won’t follow the listed order strictly. Instead, we’ll alternate between major features, smaller topics, and theory – keeping the course engaging and balanced, and helping you better retain the material.
Major Features:
Other New Features:
- Module Import Declarations
- Launch multi-file source-code programs
- Console methods with explicit
Locale - Class-File API
- Key Derivation Function API
- Linking run-time images without JMODs
API Enhancements:
Locale-dependent list patterns- Support for
Duration until another Instant
Garbage Collection:
- G1 GC improvements
- ZGC: Generational mode by default
- Generational Shenandoah
Performance / Memory Footprint:
Java Flight Recorder:
- JFR cooperative sampling
- JFR method timing & tracing
- JFR CPU-time profiling (experimental)
Deprecations & Removals:
Thread.countStackFrames()- Old core reflection implementation
- Deprecations and removals in
sun.misc.Unsafe Thread.suspend(), resume() and ThreadGroup.suspend(), resume(), stop()- Security Manager
Looking Ahead:
Agenda as PDF