|
| 1 | +--- |
| 2 | +sidebar_position: 5 |
| 3 | +title: Java 12–16 (non-LTS) |
| 4 | +description: Java 12 through 16 non-LTS releases information |
| 5 | +--- |
| 6 | + |
| 7 | +# Java 12–16 (non-LTS) |
| 8 | + |
| 9 | +## Brief Release Summary |
| 10 | + |
| 11 | +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. |
| 12 | + |
| 13 | +## Release Dates |
| 14 | + |
| 15 | +- **Java 12**: March 19, 2019 |
| 16 | +- **Java 13**: September 17, 2019 |
| 17 | +- **Java 14**: March 17, 2020 |
| 18 | +- **Java 15**: September 15, 2020 |
| 19 | +- **Java 16**: March 16, 2021 |
| 20 | + |
| 21 | +## Key Features Released |
| 22 | + |
| 23 | +### Java 12 |
| 24 | +- **Switch Expressions (Preview)** - Enhanced switch statements |
| 25 | +- **Shenandoah GC (Experimental)** - Low-pause-time garbage collector |
| 26 | +- **Microbenchmark Suite** - JDK microbenchmark suite |
| 27 | + |
| 28 | +### Java 13 |
| 29 | +- **Text Blocks (Preview)** - Multi-line string literals |
| 30 | +- **Switch Expressions (Preview)** - Continued preview |
| 31 | +- **ZGC Improvements** - Uncommitting unused memory |
| 32 | +- **Dynamic CDS Archives** - Application class-data sharing |
| 33 | + |
| 34 | +### Java 14 |
| 35 | +- **Pattern Matching for instanceof (Preview)** - Simplified type checking and casting |
| 36 | +- **Records (Preview)** - Data classes for immutable data |
| 37 | +- **Text Blocks (Second Preview)** - Continued improvements |
| 38 | +- **Helpful NullPointerExceptions** - Better error messages |
| 39 | +- **Packaging Tool (Incubator)** - Native package creation |
| 40 | + |
| 41 | +### Java 15 |
| 42 | +- **Sealed Classes (Preview)** - Restricted class hierarchies |
| 43 | +- **Hidden Classes** - Framework-friendly hidden classes |
| 44 | +- **Text Blocks (Standard)** - Text blocks finalized |
| 45 | +- **ZGC and Shenandoah** - Production-ready alternative GCs |
| 46 | +- **Records (Second Preview)** - Continued improvements |
| 47 | + |
| 48 | +### Java 16 |
| 49 | +- **Records (Standard)** - Records finalized |
| 50 | +- **Pattern Matching for instanceof (Standard)** - Pattern matching finalized |
| 51 | +- **Sealed Classes (Second Preview)** - Continued improvements |
| 52 | +- **Vector API (Incubator)** - SIMD operations |
| 53 | +- **Foreign Linker API (Incubator)** - Native interop improvements |
| 54 | +- **Elastic Metaspace** - Better memory management |
| 55 | + |
| 56 | +## References |
| 57 | + |
| 58 | +- [OpenJDK JDK 12 Release Page](https://openjdk.org/projects/jdk/12/) |
| 59 | +- [OpenJDK JDK 13 Release Page](https://openjdk.org/projects/jdk/13/) |
| 60 | +- [OpenJDK JDK 14 Release Page](https://openjdk.org/projects/jdk/14/) |
| 61 | +- [OpenJDK JDK 15 Release Page](https://openjdk.org/projects/jdk/15/) |
| 62 | +- [OpenJDK JDK 16 Release Page](https://openjdk.org/projects/jdk/16/) |
0 commit comments