JDK 16 favicon
All About JDK 16
JDK 16 • 2021 • Java 16
Records (final)Pattern Matching (final)Elastic MetaspaceUnix-Domain SocketsVector API (incubator)Sealed Classes (2nd preview)

JDK 16 and the shift from JDK 15

Records finalised (JEP 395). Pattern Matching instanceof finalised (JEP 394). Sealed Classes (2nd preview). Unix-Domain Socket Channels. Vector API (incubator). Moved source to GitHub. C++14 in JDK source.

Why JDK 16 mattered

The release in context

Records finalised (JEP 395). Pattern Matching instanceof finalised (JEP 394). Sealed Classes (2nd preview). Unix-Domain Socket Channels. Vector API (incubator). Moved source to GitHub. C++14 in JDK source.

Records (final)Pattern Matching (final)Elastic MetaspaceUnix-Domain SocketsVector API (incubator)Sealed Classes (2nd preview)
  • Records finalised (JEP 395). Pattern Matching instanceof finalised (JEP 394). Sealed Classes (2nd preview). Unix-Domain Socket Channels. Vector API (incubator). Moved source to GitHub. C++14 in JDK source.
  • Key release highlights included Records (final), Pattern Matching (final), Elastic Metaspace, Unix-Domain Sockets.
  • Compared with JDK 15, the most visible shifts included Elastic Metaspace, Vector API (incubator), Unix-Domain Socket Channels.
  • Records and Pattern Matching finalised. Modern Java type system starts to converge.
  • The platform continued turning preview ideas into stable language and tooling capabilities.
Platform stack

JDK 16 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 15 to JDK 16

The platform continued turning preview ideas into stable language and tooling capabilities.

New Features / Modern APIs

  • Vector API (incubator) appeared in JDK 16, adding a new capability in new features / modern apis.
  • Pattern Matching (final) was updated in JDK 16, showing active movement in new features / modern apis.
  • Records (final) was updated in JDK 16, showing active movement in new features / modern apis.
  • Sealed Classes (2nd preview) was updated in JDK 16, showing active movement in new features / modern apis.

Java Language Features

  • Pattern Matching instanceof (final) was updated in JDK 16, showing active movement in java language features.
  • Records (final) was updated in JDK 16, showing active movement in java language features.
  • Sealed Classes (2nd preview) was updated in JDK 16, showing active movement in java language features.
  • Text Blocks appeared in JDK 16, adding a new capability in java language features.

Other Base Libraries

  • Unix-Domain Socket Channels appeared in JDK 16, adding a new capability in other base libraries.
  • Foreign-Memory Access API (2nd incubator) was updated in JDK 16, showing active movement in other base libraries.
  • Hidden Classes carried forward from JDK 15 and settled into the baseline by JDK 16.
Matrix slice

Quick comparison table: JDK 15 vs JDK 16

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 15 JDK 16 Why it stands out
JVM: Execution Engine & GC Elastic Metaspace Not present NEW Elastic Metaspace appeared in JDK 16, adding a new capability in jvm: execution engine & gc.
JVM: Memory Management Elastic Metaspace Not present NEW Elastic Metaspace appeared in JDK 16, adding a new capability in jvm: memory management.
New Features / Modern APIs Vector API (incubator) Not present NEW Vector API (incubator) appeared in JDK 16, adding a new capability in new features / modern apis.
Other Base Libraries Unix-Domain Socket Channels Not present NEW Unix-Domain Socket Channels appeared in JDK 16, adding a new capability in other base libraries.
Deployment Applet / Java Plug-in Deprecated Deprecated Applet / Java Plug-in started being phased out in JDK 16, signaling a shift away from older platform assumptions.
Deployment Java Web Start Deprecated Deprecated Java Web Start started being phased out in JDK 16, signaling a shift away from older platform assumptions.
Java Language Features Pattern Matching instanceof (final) Not present UPD Pattern Matching instanceof (final) was updated in JDK 16, showing active movement in java language features.
Java Language Features Records (final) Not present UPD Records (final) was updated in JDK 16, showing active movement in java language features.
New Features / Modern APIs Pattern Matching (final) Not present UPD Pattern Matching (final) was updated in JDK 16, showing active movement in new features / modern apis.
Other Base Libraries Foreign-Memory Access API (2nd incubator) Not present UPD Foreign-Memory Access API (2nd incubator) was updated in JDK 16, showing active movement in other base libraries.
Tools & Tool APIs jpackage Not present UPD jpackage was updated in JDK 16, showing active movement in tools & tool apis.
lang and util Base Libraries Reflection (strongly encapsulated) Not present UPD Reflection (strongly encapsulated) was updated in JDK 16, showing active movement in lang and util base libraries.
JVM: Execution Engine & GC ZGC Not present Present ZGC appeared in JDK 16, adding a new capability in jvm: execution engine & gc.
JVM: Memory Management ZGC Not present Present ZGC appeared in JDK 16, adding a new capability in jvm: memory management.
Structured comparison

Grouped reading of the release shift

Records and Pattern Matching finalised. Modern Java type system starts to converge.

New Features / Modern APIs
New in JDK 16
  • Vector API (incubator)
  • Sealed Classes (preview)
Updated by JDK 16
  • Pattern Matching (final)
  • Records (final)
  • Sealed Classes (2nd preview)
  • Records (2nd preview)
  • Text Blocks (final)
Java Language Features
New in JDK 16
  • Text Blocks
  • Sealed Classes (preview)
Updated by JDK 16
  • Pattern Matching instanceof (final)
  • Records (final)
  • Sealed Classes (2nd preview)
  • Pattern Matching instanceof (2nd preview)
  • Records (2nd preview)
Other Base Libraries
New in JDK 16
  • Unix-Domain Socket Channels
  • Hidden Classes
Updated by JDK 16
  • Foreign-Memory Access API (2nd incubator)
Historical platform profile

Release narrative

Records finalised (JEP 395). Pattern Matching instanceof finalised (JEP 394). Sealed Classes (2nd preview). Unix-Domain Socket Channels. Vector API (incubator). Moved source to GitHub. C++14 in JDK source.

Records and Pattern Matching finalised. Modern Java type system starts to converge.

Records (final)Pattern Matching (final)Elastic MetaspaceUnix-Domain SocketsVector API (incubator)Sealed Classes (2nd preview)
Why it mattered later

Why JDK 16 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 16 sits in the timeline as a feature release, which shaped how teams evaluated and adopted it.
  • It is commonly remembered for Records (final), Pattern Matching (final), Elastic Metaspace.
  • Compared with JDK 15, it gives a clearer picture of how the JDK platform was evolving release by release.
  • Records and Pattern Matching finalised. Modern Java type system starts to converge.
Related pages

Continue through the platform story