Skip to main content

Java 12–16 (non-LTS)

Brief Release Summary

These releases continued the rapid 6-month release cycle, introducing pattern matching, records, sealed classes, text blocks, and many performance improvements. These features laid the groundwork for modern Java development.

Release Dates

  • Java 12: March 19, 2019
  • Java 13: September 17, 2019
  • Java 14: March 17, 2020
  • Java 15: September 15, 2020
  • Java 16: March 16, 2021

Key Features Released

Java 12

  • Switch Expressions (Preview) - Enhanced switch statements
  • Shenandoah GC (Experimental) - Low-pause-time garbage collector
  • Microbenchmark Suite - JDK microbenchmark suite

Java 13

  • Text Blocks (Preview) - Multi-line string literals
  • Switch Expressions (Preview) - Continued preview
  • ZGC Improvements - Uncommitting unused memory
  • Dynamic CDS Archives - Application class-data sharing

Java 14

  • Pattern Matching for instanceof (Preview) - Simplified type checking and casting
  • Records (Preview) - Data classes for immutable data
  • Text Blocks (Second Preview) - Continued improvements
  • Helpful NullPointerExceptions - Better error messages
  • Packaging Tool (Incubator) - Native package creation

Java 15

  • Sealed Classes (Preview) - Restricted class hierarchies
  • Hidden Classes - Framework-friendly hidden classes
  • Text Blocks (Standard) - Text blocks finalized
  • ZGC and Shenandoah - Production-ready alternative GCs
  • Records (Second Preview) - Continued improvements

Java 16

  • Records (Standard) - Records finalized
  • Pattern Matching for instanceof (Standard) - Pattern matching finalized
  • Sealed Classes (Second Preview) - Continued improvements
  • Vector API (Incubator) - SIMD operations
  • Foreign Linker API (Incubator) - Native interop improvements
  • Elastic Metaspace - Better memory management

References