Richard Groß

IT Archaeologist

Home

Java Version History (Ongoing)

Ever since Java switched to its six-month release cadence (Time-Based Release Versioning) it has become a bit harder to keep up with the features they have implemented. The following list tracks the stable (not incubating or in preview) feature changes I deemed most noteworthy. The releases that Oracle will provide Long-Term Support (LTS) for are marked as such, based on the plan that Oracle publishes.

The list is ongoing and will be updated with every new Java release. A + marks an added feature, a - marks a removed feature.


  • 21 (expected September 2023) LTS until September 2028

    • Preliminary opinion, since JDK rampdown and feature set freeze won’t happen before June.

    • This could be an amazing LTS release. After so many previews, record patterns and pattern matching for switch might just be finalized just for this release and make Data Oriented Programming in Java a reality. I won’t hold my breath for Virtual Threads and Foreign Function and Memory Api though, which might go for another two previews before deemed ready. If we are lucky we might also get our Primitive Classes Preview, Value Objects Preview and String Templates Preview.

  • 20 (March 2023)

    • Preliminary description, but since the JDK ramp-down phase has started, the feature set won’t dramatically change until release

    • Another huge release feature-wise but all features are either in preview (again) or incubating (again).

    • In (2nd or 4th) Preview: Record Patterns, Pattern Matching for switch, Virtual Threads, Foreign Function and Memory Api

    • Incubating: Structured Concurrency, Scoped Values

  • 19 (September 2022)

    • Huge release feature-wise but all features are either in preview or incubating.

    • In Preview: Record Patterns, Pattern Matching for switch, Virtual Threads, Foreign Function and Memory Api

    • Incubating: Vector API, Structured Concurrency

  • 18 (March 2022)





Note
The full Java version history can be found via Open JDK, at Wikipedia or via the Java releases page. Another website that tracks java features but also gives upgrading advice is whichjdk.com.