« All Java trainings

Combined Training Java 21 + 25: What’s New Since Java 17?

Duration: 4 days
Format: virtual or on-site

Overview

In this 4-day intensive training, you’ll explore the key innovations from Java 18 through 25 – compactly presented, clearly explained, and focused on practical value in everyday development.

Highlights from the Java 21 Module:

Start with core features from Java 18 to 21: Record Patterns, Pattern Matching for switch, and the Sequenced Collections API help you write cleaner and more maintainable code.

You’ll also cover practical API enhancements (e.g., in String, Character, and Math), the Simple Web Server API, and changes in HashMap.

The module also includes improvements in Garbage Collection (such as Generational ZGC) and lower-level optimizations like alternative locking techniques.

Highlights from the Java 25 Module:

In the second half, you'll dive into cutting-edge features like Unnamed Variables & Patterns, Stream Gatherers, Scoped Values, and Markdown Documentation Comments – ideal for writing clean, well-documented, and context-aware code.

You’ll also explore the Foreign Function & Memory API for secure access to native libraries.

Other topics include Compact Source Files, the Instance Main Method, and performance upgrades like Compact Object Headers and Ahead-of-Time Class Loading.

Exercises & Outlook:

With plenty of hands-on exercises inspired by real projects, you’ll learn how to apply new features directly and effectively in your daily work.

We wrap up with a look ahead to innovations such as Primitive Types in Patterns, Stable Values, a refined Structured Concurrency API, and the evolution of the Vector API.

Request in-house training »

Target Audience

This course is for Java developers who want to deepen their knowledge of Java 21 and 25 – structured, clear, and highly practical.

Whether you’re transitioning to Java 21 or 25 or already working with one of them: You’ll learn how to leverage modern language features, new APIs, and performance improvements efficiently.

It’s also ideal for teams already using Java 21 who want to systematically upgrade to Java 25.

Course Details

Duration: 4 days
Date by arrangement
Exclusively for your team
Delivered on-site or online
Customizable content
Language: English or German
Certificate of completion included

Pricing

On-site:  € 8.090,–
plus trainer travel expenses
Virtual:  € 6.660,–
Prices exclude VAT and any customization fees.

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.

Part 1: Java 18-21

Major Features:

  • Virtual Threads
  • Sequenced Collections
  • Record Patterns
  • Pattern Matching for switch

Additional Features:

  • UTF-8 by default
  • Simple web server
  • Code snippets in Java API documentation
  • New system properties for System.out and System.err encoding
  • Compiler warnings for lossy type casts
  • Key Encapsulation Mechanism API

Bugfixes:

  • IdentityHashMap's remove() and replace() methods use object identity

API Enhancements:

  • New methods for String, StringBuilder, and StringBuffer
  • New methods for Character
  • New methods for Math
  • HashMap.newHashMap()
  • Additional date-time formats

Garbage Collection:

  • String deduplication for ZGC, SerialGC, ParallelGC
  • G1 enhancements
  • Generational ZGC

Performance:

  • Alternative fast-locking scheme

Deprecations & Removals:

  • Deprecate finalization for removal
  • Locale constructors
  • URL constructors
  • Thread.stop(), suspend(), resume()
  • ThreadGroup
  • Dynamic loading of agents

Part 2: Java 22-25

Major Features:

  • Unnamed Variables & Patterns
  • Foreign Function & Memory API
  • Markdown Documentation Comments
  • Stream Gatherers
  • Synchronize Virtual Threads without Pinning
  • Scoped Values
  • Compact Source Files and Instance Main Methods

Other New Features:

  • Module Import Declarations
  • Launch multi-file source-code programs
  • Console methods with explicit Locale
  • Class-File API
  • Key Derivation Function API

API Enhancements:

  • Locale-dependent list patterns
  • Support for Duration until another Instant

Garbage Collection:

  • G1 GC improvements
  • ZGC: Generational mode by default

Performance / Memory Footprint:

  • Compact Object Headers
  • Ahead-of-Time Class Loading & Linking
  • Relax alignment of array elements
  • Change LockingMode default from LM_LEGACY to LM_LIGHTWEIGHT
  • Linking run-time images without JMODs

Deprecations & Removals:

  • Thread.countStackFrames()
  • Old core reflection implementation
  • Deprecations and removals in sun.misc.Unsafe
  • Thread.suspend(), resume() und ThreadGroup.suspend(), resume(), stop()
  • Security Manager

Looking Ahead:

  • Primitive Types in patterns, instanceof, and switch
  • Stable Values
  • Vector API
  • Structured Concurrency

Request In-House Training

Inquiry Training Specific Course (#31)

Your Trainer: Sven Woltmann

Sven Woltmann

I’m a Java expert with over 20 years of experience – as a developer, architect, CTO, performance coach, and trainer.

I’ve designed enterprise-scale systems for companies like 1&1, IONOS, and ICE Services, modernized legacy apps, and helped teams build robust, maintainable, and high-performance Java software.

With HappyCoders.eu, I’ve built one of the most widely read Java blogs in the German-speaking world. I speak at conferences and Java User Groups – and often receive praise for making complex technical topics easy to understand.

What you’ll get from my courses:

  • Extensive experience: Deep Java knowledge with real-world expertise
  • Practical focus: Plenty of hands-on exercises drawn from actual project work
  • Knowledge sharing: Space for your questions, discussions, and real-life challenges
  • Tailored to your team: Content can be flexibly adapted to your goals

I don’t just teach features – I show you how to develop better software with a deep understanding of Java.

More about me »

Format & Requirements

  • Learning method: Short theory blocks followed by immediate hands-on practice – with exercises, code examples, and real-world scenarios.
  • Materials: All course materials (slides and code) are provided at the beginning of the course.
  • Adaptability: I adjust the course pace to the group’s knowledge level when needed. In some cases, not all topics may be covered in full.
  • Technical requirements: Your own laptop or workstation with Java 21 (or later) and an IDE (I recommend IntelliJ IDEA).

Related Trainings