Oracle has announced general availability of Java Development Kit (JDK) 14, its reference implementation of the Java 14 programming language spec.
Rolling out in line with Oracle’s six-monthly release schedule that began with Java 9 in 2017, JDK 14 includes enhancements that Oracle says will improve developer productivity. Java remains the world’s most popular programming language among developers.
According to Georges Saab, Oracle vice president of development for the Java Platform, the faster six-monthly releases are helping developers adopt new features more rapidly due to regular expected changes. Java 9, for example, was released more than three years after Java 8.
Java 14 is further validation of the benefits of the six-month release cadence, giving developers access to features that they would otherwise be waiting years to get their hands on
This release contains the first wave of changes to come from Project Panama, an OpenJDK effort to improve connections between the Java virtual machine (JVM) and non-Java application programming interfaces used by C and C++ programmers.
Reflecting the shift to more frequent but smaller releases, JDK 14 includes 16 JDK Enhancement Proposals (JEPs) compared with five JEPs in Java 13, eight JEPs in Java 12, and 17 in Java 11. Java 9, by contrast, included over 90 JEPs.
Saab notes that major improvements in JDK 14 include a Foreign-Memory Access API enhancement (JEP 370), and improvements from Project Amber, another OpenJDK project, including Pattern Matching (JEP 305) and a preview of Records (JEP 359).
Oracle JDK 14 will receive at least two quarterly updates in line with Oracle’s critical-patch update schedule before Java 15 is released in September 2020.
Oracle is providing Java 14 as the Oracle OpenJDK release under an open-source GNU General Public License v2. It’s also released under a commercial license using Oracle JDK.
Most of the nearly 2,000 fixes in JDK 14 have been made by Oracle employees while 528 came from individual developers and other organizations. Some of the main contributors included Red Hat, SAP, Google, Arm, Intel, and NTT Data.
Java 14 is supported by three main integrated development environments, including JetBrains IDEA, Apache NetBeans, and Eclipse IDE.
The 16 JEPs in JDK 14 include:
- JEP 305 – Pattern Matching for instanceof (Preview)
- JEP 343 – Packaging Tool (Incubator)
- JEP 345 – NUMA-Aware Memory Allocation for G1
- JEP 349 – JFR Event Streaming
- JEP 352 – Non-Volatile Mapped Byte Buffers
- JEP 358 – Helpful NullPointerExceptions
- JEP 359 – Records (Preview)
- JEP 361 – Switch Expressions
- JEP 362 – Deprecate the Solaris and SPARC Ports
- JEP 363 – Remove the Concurrent Mark Sweep (CMS) Garbage Collector
- JEP 364 – ZGC on macOS
- JEP 365 – ZGC on Windows
- JEP 366 – Deprecate the ParallelScavenge + SerialOld GC Combination
- JEP 367 – Remove the Pack200 Tools and API
- JEP 368 – Text Blocks (Second Preview)
- JEP 370 – Foreign-Memory Access API (Incubator)