· java25,java

JDK 25 is out this 16 september, and it’s a big one — the first Long-Term Support (LTS) release since JDK 21. Packed with 18 JEPs, it balances ease-of-use improvements for developers, powerful Project Loom features, JVM performance boosts, and better tooling. Here’s what you need to know in a nutshell.

🔑 Key Takeaways

  • JDK 25 is the newest Long-Term Support (LTS) release after JDK 21 (2023).
  • It includes 18 JDK Enhancement Proposals (JEPs):

🚀 Language Features

  • JEP 507 (Preview): Primitive types in patterns, instanceof, and switch → reduces need for wrapper classes.
  • JEP 511: Module import declarations → simpler imports at the module level.
  • JEP 512: Compact source files & instance main methods → easier to write first Java apps (void main() {} instead of full boilerplate).
  • JEP 513: Flexible constructor bodies → allows checks before super() calls.

📚 Libraries & APIs

  • JEP 470: PEM encoding for crypto objects.
  • JEP 502 (Preview): Stable values → JVM-treated constants, more efficient than final.
  • JEP 505 (Preview, Loom): Structured concurrency → treat related tasks as single unit.
  • JEP 506: Scoped values → simpler alternative to thread-locals, now final.
  • JEP 508 (Incubator): Vector API (10th round) → SIMD operations for performance.
  • JEP 510: Key Derivation API (crypto).

⚙️ JVM & Performance

  • JEP 519: Compact object headers → 22% less heap, 8% less CPU (final).
  • JEP 521: Generational Shenandoah GC → better performance, final.
  • Leyden project (startup improvements):

🔍 Java Flight Recorder (JFR) Improvements

  • JEP 509: CPU-time profiling (Linux).
  • JEP 518: Cooperative sampling → more stable profiling.
  • JEP 520: Method timing & tracing.

🗑️ Deprecation

  • JEP 503: Removal of 32-bit x86 port → completes removal of all 32-bit support.

📊 Observations

  • JDK 25 (2025) → 18 JEPs.
  • Previous LTS (JDK 21) → 15 JEPs.
  • Average JEP count per release: ~13.
  • JDK 25 will receive extended support as an LTS.

✅ In short:

JDK 25 brings

  • major language ease-of-use improvements (simpler main, flexible constructors, primitive patterns),
  • Project Loom features (structured concurrency, scoped values),
  • performance gains (compact headers, generational Shenandoah, AOT profiling),
  • crypto & vector APIs,
  • and new JFR tools

— making it a powerful LTS release for developers and enterprises.

Full article by Java champion Simon Ritter