JDK 23 favicon
All About JDK 23
JDK 23 • 2024 • Java 23
Primitive Types in Patterns (preview)Module Import (preview)Flexible Constructor (2nd preview)String Templates WITHDRAWNStream Gatherers (2nd preview)ZGC improvements

JDK 23 and the shift from JDK 22

Primitive Types in Patterns (preview, JEP 455). Module Import Declarations (preview). Implicitly Declared Classes (2nd preview). Flexible Constructor Bodies (2nd preview). String Templates WITHDRAWN. Stream Gatherers (2nd preview). Class-File API (2nd preview). ZGC improvements.

Why JDK 23 mattered

The release in context

Primitive Types in Patterns (preview, JEP 455). Module Import Declarations (preview). Implicitly Declared Classes (2nd preview). Flexible Constructor Bodies (2nd preview). String Templates WITHDRAWN. Stream Gatherers (2nd preview). Class-File API (2nd preview). ZGC improvements.

Primitive Types in Patterns (preview)Module Import (preview)Flexible Constructor (2nd preview)String Templates WITHDRAWNStream Gatherers (2nd preview)ZGC improvements
  • Primitive Types in Patterns (preview, JEP 455). Module Import Declarations (preview). Implicitly Declared Classes (2nd preview). Flexible Constructor Bodies (2nd preview). String Templates WITHDRAWN. Stream Gatherers (2nd preview). Class-File API (2nd preview). ZGC improvements.
  • Key release highlights included Primitive Types in Patterns (preview), Module Import (preview), Flexible Constructor (2nd preview), String Templates WITHDRAWN.
  • Compared with JDK 22, the most visible shifts included Module Import Declarations (preview), Primitive Types in Patterns (preview), Module Import (preview).
  • String Templates surprisingly withdrawn after 2 previews — rare event showing Java's design rigour.
  • It shows how the modern JDK has become a steady stream of improvements across language, runtime, APIs, and tooling.
Platform stack

JDK 23 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 22 to JDK 23

It shows how the modern JDK has become a steady stream of improvements across language, runtime, APIs, and tooling.

Java Language Features

  • Module Import Declarations (preview) appeared in JDK 23, adding a new capability in java language features.
  • Primitive Types in Patterns (preview) appeared in JDK 23, adding a new capability in java language features.
  • String Templates WITHDRAWN no longer carried the same role in JDK 23, marking a meaningful platform cleanup.
  • Flexible Constructor Bodies (2nd preview) was updated in JDK 23, showing active movement in java language features.

New Features / Modern APIs

  • Module Import (preview) appeared in JDK 23, adding a new capability in new features / modern apis.
  • Primitive Types in Patterns (preview) appeared in JDK 23, adding a new capability in new features / modern apis.
  • Stream Gatherers (2nd preview) was updated in JDK 23, showing active movement in new features / modern apis.
  • FFM API appeared in JDK 23, adding a new capability in new features / modern apis.

Other Base Libraries

  • Class-File API (2nd preview) was updated in JDK 23, showing active movement in other base libraries.
  • Class-File API (preview) carried forward from JDK 22 and settled into the baseline by JDK 23.
  • Launch Multi-File Source Programs carried forward from JDK 22 and settled into the baseline by JDK 23.
Matrix slice

Quick comparison table: JDK 22 vs JDK 23

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 22 JDK 23 Why it stands out
Java Language Features Module Import Declarations (preview) Not present NEW Module Import Declarations (preview) appeared in JDK 23, adding a new capability in java language features.
Java Language Features Primitive Types in Patterns (preview) Not present NEW Primitive Types in Patterns (preview) appeared in JDK 23, adding a new capability in java language features.
New Features / Modern APIs Module Import (preview) Not present NEW Module Import (preview) appeared in JDK 23, adding a new capability in new features / modern apis.
New Features / Modern APIs Primitive Types in Patterns (preview) Not present NEW Primitive Types in Patterns (preview) appeared in JDK 23, adding a new capability in new features / modern apis.
Deployment Applet API Deprecated Deprecated Applet API started being phased out in JDK 23, signaling a shift away from older platform assumptions.
JVM: Execution Engine & GC Generational ZGC (improved) Not present UPD Generational ZGC (improved) was updated in JDK 23, showing active movement in jvm: execution engine & gc.
Other Base Libraries Class-File API (2nd preview) Not present UPD Class-File API (2nd preview) was updated in JDK 23, showing active movement in other base libraries.
lang and util Base Libraries Stream Gatherers (2nd preview) Not present UPD Stream Gatherers (2nd preview) was updated in JDK 23, showing active movement in lang and util base libraries.
Integration Libraries Foreign Function & Memory API Not present Present Foreign Function & Memory API appeared in JDK 23, adding a new capability in integration libraries.
JVM: Native Method Interface Foreign Function & Memory API Not present Present Foreign Function & Memory API appeared in JDK 23, adding a new capability in jvm: native method interface.
Integration Libraries Foreign Function & Memory API (FINAL) UPD Present Foreign Function & Memory API (FINAL) moved from active change in JDK 22 into a more stable baseline by JDK 23.
JVM: Native Method Interface Foreign Function & Memory API (FINAL) UPD Present Foreign Function & Memory API (FINAL) moved from active change in JDK 22 into a more stable baseline by JDK 23.
Other Base Libraries Class-File API (preview) NEW Present Class-File API (preview) carried forward from JDK 22 and settled into the baseline by JDK 23.
lang and util Base Libraries Stream Gatherers (preview) NEW Present Stream Gatherers (preview) carried forward from JDK 22 and settled into the baseline by JDK 23.
Structured comparison

Grouped reading of the release shift

String Templates surprisingly withdrawn after 2 previews — rare event showing Java's design rigour.

Java Language Features
New in JDK 23
  • Module Import Declarations (preview)
  • Primitive Types in Patterns (preview)
  • Unnamed Variables
  • Statements before super() (preview)
Updated by JDK 23
  • String Templates WITHDRAWN
  • Flexible Constructor Bodies (2nd preview)
  • String Templates (2nd preview)
  • Unnamed Variables & Patterns (final)
New Features / Modern APIs
New in JDK 23
  • Module Import (preview)
  • Primitive Types in Patterns (preview)
  • FFM API
  • Class-File API (preview)
  • Stream Gatherers (preview)
Updated by JDK 23
  • Stream Gatherers (2nd preview)
  • FFM API (FINAL)
  • Structured Concurrency (2nd preview)
Other Base Libraries
New in JDK 23
  • Class-File API (preview)
  • Launch Multi-File Source Programs
Updated by JDK 23
  • Class-File API (2nd preview)
Historical platform profile

Release narrative

Primitive Types in Patterns (preview, JEP 455). Module Import Declarations (preview). Implicitly Declared Classes (2nd preview). Flexible Constructor Bodies (2nd preview). String Templates WITHDRAWN. Stream Gatherers (2nd preview). Class-File API (2nd preview). ZGC improvements.

String Templates surprisingly withdrawn after 2 previews — rare event showing Java's design rigour.

Primitive Types in Patterns (preview)Module Import (preview)Flexible Constructor (2nd preview)String Templates WITHDRAWNStream Gatherers (2nd preview)ZGC improvements
Why it mattered later

Why JDK 23 matters in the JDK timeline

This release fits into the steady JDK cadence where tooling, runtime behavior, and delivery capabilities evolve one step at a time.

  • JDK 23 sits in the timeline as a current milestone, which shaped how teams evaluated and adopted it.
  • It is commonly remembered for Primitive Types in Patterns (preview), Module Import (preview), Flexible Constructor (2nd preview).
  • Compared with JDK 22, it gives a clearer picture of how the JDK platform was evolving release by release.
  • String Templates surprisingly withdrawn after 2 previews — rare event showing Java's design rigour.
Related pages

Continue through the platform story