Released March 17, 2020
OpenJDK 14 General Availability
Zulu 14.27 (JDK 14) General Availability (GA) includes JDK packages for Intel and AMD x64 and x86 platforms. This release includes the following JDK Enhancement Proposals (JEP):
JEP 305: Pattern Matching for instanceof (Preview)
Enhance the Java programming language with pattern matching for the instanceof operator. Pattern matching allows common logic in a program, namely the conditional extraction of components from objects, to be expressed more concisely and safely. This is a preview language feature in JDK 14.
JEP 343: Packaging Tool (Incubator)
Create a tool for packaging self-contained Java applications.
JEP 345: NUMA-Aware Memory Allocation for G1
Improve G1 performance on large machines by implementing NUMA-aware memory allocation.
JEP 349: JFR Event Streaming
Expose JDK Flight Recorder data for continuous monitoring.
JEP 352: Non-Volatile Mapped Byte Buffers
Add new JDK-specific file mapping modes so that the FileChannel API can be used to create MappedByteBuffer instances that refer to non-volatile memory.
JEP 358: Helpful NullPointerExceptions
Improve the usability of NullPointerExceptions generated by the JVM by describing precisely which variable was null.
JEP 359: Records (Preview)
Enhance the Java programming language with records. Records provide a compact syntax for declaring classes which are transparent holders for shallowly immutable data. This is a preview language feature in JDK 14.
JEP 361: Switch Expressions (Standard)
Extend switch so it can be used as either a statement or an expression, and so that both forms can use either traditional case ... : labels (with fall through) or new case ... -> labels (with no fall through), with a further new statement for yielding a value from a switch expression. These changes will simplify everyday coding, and prepare the way for the use of pattern matching in switch. This was a preview language feature in JDK 12 and JDK 13.
JEP 362: Deprecate the Solaris and SPARC Ports
Deprecate the Solaris/SPARC, Solaris/x64, and Linux/SPARC ports, with the intent to remove them in a future release.
JEP 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector
Remove the Concurrent Mark Sweep (CMS) garbage collector.
JEP 364: ZGC on macOS
Port the ZGC garbage collector to macOS.
JEP 365: ZGC on Windows
Port the ZGC garbage collector to Windows.
JEP 366: Deprecate the ParallelScavenge + SerialOld GC Combination
Deprecate the combination of the Parallel Scavenge and Serial Old garbage collection algorithms.
JEP 367: Remove the Pack200 Tools and API
Remove the pack200 and unpack200 tools, and the Pack200 API in the java.util.jar package. These tools and API were deprecated for removal in Java SE 11 with the express intent to remove them in a future release.
JEP 368: Text Blocks (Second Preview)
Add text blocks to the Java language. A text block is a multi-line string literal that avoids the need for most escape sequences, automatically formats the string in a predictable way, and gives the developer control over the format when desired. This is a preview language feature in JDK 14.
JEP 370: Foreign-Memory Access API (Incubator)
Introduce an API to allow Java programs to safely and efficiently access foreign memory outside of the Java heap.