JDK 25 favicon
All About JDK 25
JDK 25 • 2025 • Java 25
Primitive Patterns (FINAL)Module Imports (FINAL)Flexible Constructors (FINAL)Stable Values (preview)PEM Encodings (preview)JFR CPU profiling

JDK 25 and the shift from JDK 24

LTS. Primitive Types in Patterns FINAL (JEP 507). Module Imports FINAL (JEP 511). Flexible Constructor Bodies FINAL (JEP 513). Stable Values (JEP 502, preview). Structured Concurrency (5th preview). Scoped Values (5th preview). JFR CPU-time profiling. AOT caching enhanced. 18 JEPs.

Why JDK 25 mattered

The release in context

LTS. Primitive Types in Patterns FINAL (JEP 507). Module Imports FINAL (JEP 511). Flexible Constructor Bodies FINAL (JEP 513). Stable Values (JEP 502, preview). Structured Concurrency (5th preview). Scoped Values (5th preview). JFR CPU-time profiling. AOT caching enhanced. 18 JEPs.

Primitive Patterns (FINAL)Module Imports (FINAL)Flexible Constructors (FINAL)Stable Values (preview)PEM Encodings (preview)JFR CPU profiling
  • LTS. Primitive Types in Patterns FINAL (JEP 507). Module Imports FINAL (JEP 511). Flexible Constructor Bodies FINAL (JEP 513). Stable Values (JEP 502, preview). Structured Concurrency (5th preview). Scoped Values (5th preview). JFR CPU-time profiling. AOT caching enhanced. 18 JEPs.
  • Key release highlights included Primitive Patterns (FINAL), Module Imports (FINAL), Flexible Constructors (FINAL), Stable Values (preview).
  • Compared with JDK 24, the most visible shifts included PEM Encodings (preview), Stable Values (preview), Applet API (deprecated for removal).
  • LTS. Three long-preview features finalised. Project Leyden AOT matures. Stable Values begins preview.
  • The next LTS tends to become the major decision point for long-lived Java estates and framework support lines.
Platform stack

JDK 25 architecture preview

This larger diagram expands the smaller JDK badge into a layered platform view showing how the development kit, runtime, virtual machine, APIs, tools, and supporting subsystems fit together for this release.

Previous-version diff

What changed from JDK 24 to JDK 25

The next LTS tends to become the major decision point for long-lived Java estates and framework support lines.

New Features / Modern APIs

  • Stable Values (preview) appeared in JDK 25, adding a new capability in new features / modern apis.
  • Module Imports (FINAL) was updated in JDK 25, showing active movement in new features / modern apis.
  • Primitive Types in Patterns (FINAL) was updated in JDK 25, showing active movement in new features / modern apis.
  • Scoped Values (5th preview) was updated in JDK 25, showing active movement in new features / modern apis.

Java Language Features

  • Flexible Constructor Bodies (FINAL) was updated in JDK 25, showing active movement in java language features.
  • Module Import Declarations (FINAL) was updated in JDK 25, showing active movement in java language features.
  • Primitive Types in Patterns (FINAL) was updated in JDK 25, showing active movement in java language features.
  • Simple Source Programs (FINAL) was updated in JDK 25, showing active movement in java language features.

Other Base Libraries

  • Stable Values (preview) appeared in JDK 25, adding a new capability in other base libraries.
  • AOT Class Loading (enhanced) was updated in JDK 25, showing active movement in other base libraries.
  • Class-File API appeared in JDK 25, adding a new capability in other base libraries.
  • AOT Class Loading (Project Leyden) carried forward from JDK 24 and settled into the baseline by JDK 25.
Matrix slice

Quick comparison table: JDK 24 vs JDK 25

This side-by-side view turns the source evolution matrix into a faster way to see which language, tooling, runtime, and platform layers moved between these two releases.

Area Component JDK 24 JDK 25 Why it stands out
Integration Libraries PEM Encodings (preview) Not present NEW PEM Encodings (preview) appeared in JDK 25, adding a new capability in integration libraries.
New Features / Modern APIs Stable Values (preview) Not present NEW Stable Values (preview) appeared in JDK 25, adding a new capability in new features / modern apis.
Other Base Libraries Stable Values (preview) Not present NEW Stable Values (preview) appeared in JDK 25, adding a new capability in other base libraries.
Deployment Applet API (deprecated for removal) Not present Deprecated Applet API (deprecated for removal) started being phased out in JDK 25, signaling a shift away from older platform assumptions.
JVM: Class Loader Subsystem AOT Class Data Cache (enhanced) Not present UPD AOT Class Data Cache (enhanced) was updated in JDK 25, showing active movement in jvm: class loader subsystem.
JVM: Memory Management AOT Cache (enhanced) Not present UPD AOT Cache (enhanced) was updated in JDK 25, showing active movement in jvm: memory management.
Java Language Features Flexible Constructor Bodies (FINAL) Not present UPD Flexible Constructor Bodies (FINAL) was updated in JDK 25, showing active movement in java language features.
Java Language Features Module Import Declarations (FINAL) Not present UPD Module Import Declarations (FINAL) was updated in JDK 25, showing active movement in java language features.
New Features / Modern APIs Module Imports (FINAL) Not present UPD Module Imports (FINAL) was updated in JDK 25, showing active movement in new features / modern apis.
Other Base Libraries AOT Class Loading (enhanced) Not present UPD AOT Class Loading (enhanced) was updated in JDK 25, showing active movement in other base libraries.
Tools & Tool APIs JFR (CPU-time profiling) Not present UPD JFR (CPU-time profiling) was updated in JDK 25, showing active movement in tools & tool apis.
Integration Libraries ML-KEM / ML-DSA Not present Present ML-KEM / ML-DSA appeared in JDK 25, adding a new capability in integration libraries.
JVM: Memory Management Compact Object Headers Not present Present Compact Object Headers appeared in JDK 25, adding a new capability in jvm: memory management.
lang and util Base Libraries Stream Gatherers Not present Present Stream Gatherers appeared in JDK 25, adding a new capability in lang and util base libraries.
Structured comparison

Grouped reading of the release shift

LTS. Three long-preview features finalised. Project Leyden AOT matures. Stable Values begins preview.

New Features / Modern APIs
New in JDK 25
  • Stable Values (preview)
  • Stream Gatherers
  • AOT Class Loading (Leyden)
  • ML-KEM / ML-DSA (Quantum-safe)
Updated by JDK 25
  • Module Imports (FINAL)
  • Primitive Types in Patterns (FINAL)
  • Scoped Values (5th preview)
  • Structured Concurrency (5th preview)
  • Class-File API (FINAL)
Java Language Features
New in JDK 25
  • Simple Source Launcher
Updated by JDK 25
  • Flexible Constructor Bodies (FINAL)
  • Module Import Declarations (FINAL)
  • Primitive Types in Patterns (FINAL)
  • Simple Source Programs (FINAL)
  • Flexible Constructor Bodies (3rd preview)
Other Base Libraries
New in JDK 25
  • Stable Values (preview)
  • Class-File API
  • AOT Class Loading (Project Leyden)
Updated by JDK 25
  • AOT Class Loading (enhanced)
  • Class-File API (FINAL)
  • Security (post-quantum crypto)
Historical platform profile

Release narrative

LTS. Primitive Types in Patterns FINAL (JEP 507). Module Imports FINAL (JEP 511). Flexible Constructor Bodies FINAL (JEP 513). Stable Values (JEP 502, preview). Structured Concurrency (5th preview). Scoped Values (5th preview). JFR CPU-time profiling. AOT caching enhanced. 18 JEPs.

LTS. Three long-preview features finalised. Project Leyden AOT matures. Stable Values begins preview.

Primitive Patterns (FINAL)Module Imports (FINAL)Flexible Constructors (FINAL)Stable Values (preview)PEM Encodings (preview)JFR CPU profiling
Why it mattered later

Why JDK 25 matters in the JDK timeline

This JDK milestone matters as a long-term operational anchor, so it is especially important for migration planning, baselining, and enterprise adoption.

  • JDK 25 sits in the timeline as a next lts, which shaped how teams evaluated and adopted it.
  • It is commonly remembered for Primitive Patterns (FINAL), Module Imports (FINAL), Flexible Constructors (FINAL).
  • Compared with JDK 24, it gives a clearer picture of how the JDK platform was evolving release by release.
  • LTS. Three long-preview features finalised. Project Leyden AOT matures. Stable Values begins preview.
Related pages

Continue through the platform story