Java 14 released

Source

Oracle released JDK 14, its reference implementation of the Java 14 specification.

Java 14 shows up six months after Java 13, reflecting the accelerated release cadence adopted to move the code away from multi-year development cycles and to match the pace of other modern software projects.

Georges Saab, VP of development for Oracle’s Java platform, cited the release as validation of the shift to the six-month release cadence adopted back with Java 9.

“Not only does JDK 14 have a number of enhancements that will improve developer productivity, but we’re also seeing the first major content to come from projects like Project Panama, with a Foreign-Memory Access API enhancement (JEP 370), and continuing improvements from Project Amber, with Pattern Matching (JEP 305) and Records (JEP 359),” said Saab in a blog post.

Project Panama is an OpenJDK project to make the Java Virtual Machine (JVM) accessible via non-Java APIs, so developers can make native C/C++ calls, for example, from the JVM. The OpenJDK is an open source Java SE implementation upon which the Oracle JDK is based. The Oracle JDK also includes closed-source components.

Java 14 includes 16 new features, detailed in the release notes:

  • 305: Pattern Matching for instanceof (Preview)
  • 343: Packaging Tool (Incubator)
  • 345: NUMA-Aware Memory Allocation for G1
  • 349: JFR Event Streaming
  • 352: Non-Volatile Mapped Byte Buffers
  • 358: Helpful NullPointerExceptions
  • 359: Records (Preview)
  • 361: Switch Expressions (Standard)
  • 362: Deprecate the Solaris and SPARC Ports
  • 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector
  • 364: ZGC on macOS
  • 365: ZGC on Windows
  • 366: Deprecate the ParallelScavenge + SerialOld GC Combination
  • 367: Remove the Pack200 Tools and API
  • 368: Text Blocks (Second Preview)
  • 370: Foreign-Memory Access API (Incubator)

There are also a number of features that have been removed because they’re no longer supported or obsolete, like the netscape.javascript.JSObject::getWindow method.

In a blog post, Mala Gupta, developer advocate at JetBrains, maker of the IntelliJ IDE for Java, delves into the utility of Records, a new type declaration designed to make data modeling easier.