JDK 13 favicon
All About JDK 13
JDK 13 • 2019 • Java 13
Text Blocks (preview)Switch Expressions (yield)ZGC uncommit memoryDynamic CDSSocket API reimpl.

JDK 13 and the shift from JDK 12

Text Blocks preview (JEP 355). Switch Expressions second preview (yield keyword). Reimplement legacy Socket API (JEP 353). ZGC improvements (uncommit unused memory). Dynamic CDS Archives.

Why JDK 13 mattered

The release in context

Text Blocks preview (JEP 355). Switch Expressions second preview (yield keyword). Reimplement legacy Socket API (JEP 353). ZGC improvements (uncommit unused memory). Dynamic CDS Archives.

Text Blocks (preview)Switch Expressions (yield)ZGC uncommit memoryDynamic CDSSocket API reimpl.
  • Text Blocks preview (JEP 355). Switch Expressions second preview (yield keyword). Reimplement legacy Socket API (JEP 353). ZGC improvements (uncommit unused memory). Dynamic CDS Archives.
  • Key release highlights included Text Blocks (preview), Switch Expressions (yield), ZGC uncommit memory, Dynamic CDS.
  • Compared with JDK 12, the most visible shifts included Dynamic CDS, Text Blocks (preview), Dynamic CDS Archives.
  • Text Blocks solve the multi-line string problem Java has had since 1996. yield keyword for switch.
  • The JDK increasingly served as a fast feedback loop for new platform ideas before long-term stabilization.
Platform stack

JDK 13 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 12 to JDK 13

The JDK increasingly served as a fast feedback loop for new platform ideas before long-term stabilization.

New Features / Modern APIs

  • Text Blocks (preview) appeared in JDK 13, adding a new capability in new features / modern apis.
  • Switch Expressions (2nd preview) was updated in JDK 13, showing active movement in new features / modern apis.
  • Switch Expressions (preview) carried forward from JDK 12 and settled into the baseline by JDK 13.
  • Teeing Collector carried forward from JDK 12 and settled into the baseline by JDK 13.

Other Base Libraries

  • Dynamic CDS Archives appeared in JDK 13, adding a new capability in other base libraries.
  • Socket API (reimplemented) was updated in JDK 13, showing active movement in other base libraries.
  • Compact Number Format carried forward from JDK 12 and settled into the baseline by JDK 13.
  • JVM Constants API carried forward from JDK 12 and settled into the baseline by JDK 13.

Java Language Features

  • Text Blocks (preview) appeared in JDK 13, adding a new capability in java language features.
  • Switch Expressions (2nd preview, yield) was updated in JDK 13, showing active movement in java language features.
  • Switch Expressions (preview) carried forward from JDK 12 and settled into the baseline by JDK 13.
Matrix slice

Quick comparison table: JDK 12 vs JDK 13

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 12 JDK 13 Why it stands out
JVM: Memory Management Dynamic CDS Not present NEW Dynamic CDS appeared in JDK 13, adding a new capability in jvm: memory management.
Java Language Features Text Blocks (preview) Not present NEW Text Blocks (preview) appeared in JDK 13, adding a new capability in java language features.
New Features / Modern APIs Text Blocks (preview) Not present NEW Text Blocks (preview) appeared in JDK 13, adding a new capability in new features / modern apis.
Other Base Libraries Dynamic CDS Archives Not present NEW Dynamic CDS Archives appeared in JDK 13, 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 13, signaling a shift away from older platform assumptions.
Deployment Java Web Start Deprecated Deprecated Java Web Start started being phased out in JDK 13, signaling a shift away from older platform assumptions.
JVM: Execution Engine & GC ZGC (uncommit memory) Not present UPD ZGC (uncommit memory) was updated in JDK 13, showing active movement in jvm: execution engine & gc.
Java Language Features Switch Expressions (2nd preview, yield) Not present UPD Switch Expressions (2nd preview, yield) was updated in JDK 13, showing active movement in java language features.
New Features / Modern APIs Switch Expressions (2nd preview) Not present UPD Switch Expressions (2nd preview) was updated in JDK 13, showing active movement in new features / modern apis.
Other Base Libraries Socket API (reimplemented) Not present UPD Socket API (reimplemented) was updated in JDK 13, showing active movement in other base libraries.
JVM: Execution Engine & GC Shenandoah GC Not present Present Shenandoah GC appeared in JDK 13, adding a new capability in jvm: execution engine & gc.
JVM: Memory Management Shenandoah GC NEW Present Shenandoah GC carried forward from JDK 12 and settled into the baseline by JDK 13.
Tools & Tool APIs Microbenchmark Suite (JMH) NEW Present Microbenchmark Suite (JMH) carried forward from JDK 12 and settled into the baseline by JDK 13.
lang and util Base Libraries Collections (Teeing Collector) UPD Present Collections (Teeing Collector) moved from active change in JDK 12 into a more stable baseline by JDK 13.
Structured comparison

Grouped reading of the release shift

Text Blocks solve the multi-line string problem Java has had since 1996. yield keyword for switch.

New Features / Modern APIs
New in JDK 13
  • Text Blocks (preview)
  • Switch Expressions (preview)
  • Teeing Collector
Updated by JDK 13
  • Switch Expressions (2nd preview)
Other Base Libraries
New in JDK 13
  • Dynamic CDS Archives
  • Compact Number Format
  • JVM Constants API
Updated by JDK 13
  • Socket API (reimplemented)
Java Language Features
New in JDK 13
  • Text Blocks (preview)
  • Switch Expressions (preview)
Updated by JDK 13
  • Switch Expressions (2nd preview, yield)
Historical platform profile

Release narrative

Text Blocks preview (JEP 355). Switch Expressions second preview (yield keyword). Reimplement legacy Socket API (JEP 353). ZGC improvements (uncommit unused memory). Dynamic CDS Archives.

Text Blocks solve the multi-line string problem Java has had since 1996. yield keyword for switch.

Text Blocks (preview)Switch Expressions (yield)ZGC uncommit memoryDynamic CDSSocket API reimpl.
Why it mattered later

Why JDK 13 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 13 sits in the timeline as a feature release, which shaped how teams evaluated and adopted it.
  • It is commonly remembered for Text Blocks (preview), Switch Expressions (yield), ZGC uncommit memory.
  • Compared with JDK 12, it gives a clearer picture of how the JDK platform was evolving release by release.
  • Text Blocks solve the multi-line string problem Java has had since 1996. yield keyword for switch.
Related pages

Continue through the platform story