What you’ll learn in this training
In this two-day course, you’ll learn and master all major new features introduced in Java versions 12 through 17 – in-depth, easy to understand, and with a strong focus on real-world projects.
We’ll explore how modern language features like Records, Switch Expressions, and Pattern Matching make your code more elegant and maintainable. You’ll learn how Text Blocks simplify working with multi-line strings – and how numerous smaller enhancements to the standard API can save you time.
You’ll also get an overview of ZGC and Shenandoah, production-ready since Java 15 – and how the existing garbage collectors have been improved.
You’ll also learn what to watch out for when upgrading to Java 17 – in particular, why Strongly Encapsulate JDK Internals becomes a stumbling block for many teams and how to solve it with confidence.
With hands-on exercises – often based on real project scenarios – you’ll immediately apply what you’ve learned and reinforce your understanding.
At the end of the course, you’ll also get a preview of upcoming features – for example, Pattern Matching for switch, introduced as a preview in Java 17.
You’ll find a complete overview of all new features in the Java 17 features article.
Target audience
This course is designed for Java developers who want to stay up to date – practical, hands-on, and full of “aha” moments. Ideally, participants should have at least two years of professional Java experience.
The course is also ideal for teams already using Java 17 who want to deepen or refresh their knowledge.
For engineering leads and teams who want to upgrade to Java 17 or get their team ready for the next LTS version, this course is the right starting point.
If you want to catch up on Java 17 and 21 in one go, the combined Java 17 + 21 course is the right choice – or cover all three LTS versions in the combined Java 17 + 21 + 25 course.
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:
Additional Enhancements:
- Helpful
NullPointerExceptions - Hidden Classes
- Warnings for value-based classes
- Context-specific deserialization filters
- Unix-domain socket channels
API Improvements:
- New
String methods - New
Stream methods Files.mismatch()- New
ByteBuffer methods - The Teeing collector
- Hex formatting and parsing utility
- Enhanced pseudo-random number generators
InstantSource- Compact number formatting
Garbage Collection:
- Improvements to G1 and Parallel GC
- ZGC and Shenandoah production-ready
- Elastic Metaspace
Performance:
- Default and dynamic CDS archives
- Non-volatile mapped byte buffers
- Specialized
TreeMap implementations - Decoupling of Compressed Oops and Compressed Class Pointers
Tools:
- JFR event streaming
- Packaging tool
Deprecations & Removals:
Thread.suspend() and resume(): deprecated for removalThreadGroup: stop(), destroy(), isDestroyed(), setDaemon(), and isDaemon()- Biased locking
- Security Manager: deprecated for removal
- Removed: CMS garbage collector
- Removed: Nashorn JavaScript engine
- Removed: Pack200
- Removed: RMI Activation
- Removed: experimental AOT and JIT compiler (Graal)
- And more...
Looking Ahead:
Agenda as PDF