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