Java 18–20 (non-LTS)
Brief Release Summary
These releases continued to refine Java with pattern matching improvements, virtual threads (Project Loom), structured concurrency, and scoped values. These features modernize Java's concurrency model.
Release Dates
- Java 18: March 22, 2022
- Java 19: September 20, 2022
- Java 20: March 21, 2023
Key Features Released
Java 18
- UTF-8 by Default - UTF-8 as default charset
- Simple Web Server - HTTP server for prototyping
- Code Snippets in Java API Documentation - Enhanced Javadoc
- Reimplement Core Reflection with Method Handles - Performance improvements
- Internet-Address Resolution SPI - Pluggable resolver
- Foreign Function & Memory API (Second Incubator) - Continued native interop
Java 19
- Virtual Threads (Preview) - Lightweight threads (Project Loom)
- Pattern Matching for switch (Third Preview) - Continued improvements
- Record Patterns (Preview) - Pattern matching for records
- Foreign Function & Memory API (Third Incubator) - Continued improvements
- Structured Concurrency (Incubator) - Simplified concurrent programming
- Vector API (Fourth Incubator) - Continued SIMD operations
Java 20
- Scoped Values (Preview) - Thread-local variables alternative
- Record Patterns (Second Preview) - Continued improvements
- Pattern Matching for switch (Fourth Preview) - Continued improvements
- Foreign Function & Memory API (Fourth Incubator) - Continued improvements
- Virtual Threads (Second Preview) - Continued improvements
- Structured Concurrency (Second Incubator) - Continued improvements