Today is the release of Java 25, so let's discover what it is about: the features...
Here is one swipeable deck covering the most impactful language, libraries, observability, AOT, and GC updates. Save it, share it, argue over it 😄
Highlights you’ll see:
Language & UX (early slides from 470s–510s)
- 🧩 Primitive Types in Patterns / instanceof / switch — safer narrowing + uniform matching
- 📦 Module Import Declarations — import module java.se; for instant breadth
- ✂️ Compact Source Files & Instance main — zero-boilerplate on-ramp (IO.println)
- 🧱 Flexible Constructor Bodies — validate/initialize before super() safely
- 🧵 Scoped Values (finalized) — simple, fast, bounded-thread context
- 🤝 Structured Concurrency (5th preview) — fork/join done right with StructuredTaskScope
Core libs & crypto
- 🧮 Vector API (10th incubator) — broader SIMD reach + Float16 auto-vectorization
- 🔐 KDF API (final) — HKDF out of the box; Argon2-ready surface
Observability (JFR)
- ⏱️ CPU-Time Profiling — accurate CPU attribution via kernel timers
- 🤝 Cooperative Sampling — safe, low-bias stack sampling at safepoints
- 🔎 Method Timing & Tracing — targeted bytecode instrumentation with filters
AOT & runtime
- 🧰 AOT CLI Ergonomics — one-step train+cache (-XX:AOTCacheOutput)
- 🚀 AOT Method Profiling — preload profiles so JIT optimizes immediately
- 🧱 Compact Object Headers (productized) — smaller heaps, fewer GCs
- 🌱 Generational Shenandoah (productized) — smoother pauses, better throughput
Which JEP are you most excited to try in your services? 👇
(Personally, I like the 507, 511, 512, 513)
#Java #Java25 #OpenJDK #JEP #JVM #Performance #AOT #JFR #Observability #Profiling #Tracing #GarbageCollection
#Shenandoah #StructuredConcurrency #ScopedValues #VectorAPI #Developers #Backend #Cloud #DevTools