Oracle has released version 15 of the Java programming language and virtual machine.
InfoQ originally reported on this release in April and since then only a few features have been added.
Both Records and Patterns for instanceof have returned for a second preview. InfoQ previously featured an in-depth look at Records from Brian Goetz and the general direction of the feature set from Project Amber. This release also delivers a preview of Sealed Classes which is another incremental part of Amber, as discussed at QCon London 2020.
Reaching production (or non-experimental) status are two separate low-latency / low-pause garbage collectors - Oracle's ZGC and Red Hat's Shenandoah - both are intended for workloads that need to maintain very short (~1ms) pause times even on larger heaps and are prepared to pay a higher level of overall performance tax to achieve them.
One of the other more notable features is JEP 383 - Foreign-Memory Access API which has reached Second Incubator status.
The full final list of features is:
- JEP 339: Edwards-Curve Digital Signature Algorithm (EdDSA)
- JEP 360: Sealed Classes (Preview)
- JEP 371: Hidden Classes
- JEP 372: Remove the Nashorn JavaScript Engine
- JEP 373: Reimplement the Legacy DatagramSocket API
- JEP 374: Disable and Deprecate Biased Locking
- JEP 375: Pattern Matching for instanceof (Second Preview)
- JEP 377: ZGC: A Scalable Low-Latency Garbage Collector
- JEP 378: Text Blocks
- JEP 379: Shenandoah: A Low-Pause-Time Garbage Collector
- JEP 381: Remove the Solaris and SPARC Ports
- JEP 383: Foreign-Memory Access API (Second Incubator)
- JEP 384: Records (Second Preview)
- JEP 385: Deprecate RMI Activation for Removal
It should be noted that Java 15 is not a long-term support release, so the extent to which developers will adopt this new version remains to be seen. To date, none of the non-LTS releases have seen significant adoption.
Java 15 is available for download from Oracle and other vendors, including AdoptOpenJDK.