Skip to main content

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

References