Java 25 Course
The LTS where a decade of previews finally landed - and startup became a first-class goal.
Take this course in the learning hubLessons
- The LTS where previews landedJava 25 is less about new ideas than about a long backlog of features all reaching final.
- Compact source files and instance mainAfter four previews, a Java file no longer needs a class declaration to run.
- Scoped values go finalThe supported replacement for ThreadLocal in a world of millions of threads.
- Module imports go finalOne import line for a whole module, now supported rather than preview.
- Flexible constructor bodies go finalValidation before super() is now supported, deleting a long-standing workaround.
- Compact object headersA JVM change that shrinks every object on the heap, with no code change at all.
- Ahead-of-time startup (Project Leyden)The JVM starts remembering what it learned last time, instead of relearning it every boot.
- Generational ShenandoahThe second low-pause collector learns the same generational trick ZGC did.
- Structured concurrency: still previewFive previews in, and the API changed again - a deliberate signal worth reading.
- Primitive patterns keep previewingA third preview, and the reason this one is harder than it looks.
- Key Derivation Function APIA standard way to turn one secret into many keys, finalised in 25.
- PEM encodings (preview)Reading a certificate file should not require a third-party library.
- Flight Recorder gets sharperThree JFR changes that make production profiling both cheaper and more honest.
- Upgrading from 21 to 25A short, practical order of work - and the features worth adopting first.
- Choosing a version in 2026Where each LTS stands now, and what to do if you are still on 8 or 11.
- Proving an upgrade was worth itCompact headers, AOT and a newer GC are claims - measure them on your workload.