Java JDK 10: What new features to expect in the next Java

Technologies from several projects will provide a pipeline of new capabilities in Java 10 and later versions

Java JDK 10: What new features to expect in the next Java
Peter Sayer/IDGNS

On February 12, 2018, the planned Java Development Kit 10 upgrade got its first release candidate. A second release candidate is due by March.

When JDK 10 will be released

JDK 10, an implementation of Java Standard Edition 10, is due for production release on March 20, 2018. Key improvements proposed include a local type inference and a “clean” interface for garbage collection.

Oracle has set a six-month release cadence for Java releases. There had been plans to name this upgrade and successors based on the year and month of the release, with the first release to be called Java 18.3. But those plans were scrapped after objections were raised.

Where to downoad JDK 10

You can download the beta versions of JDK 10 after agreeing to join the early adopter program.

New and improved features in JDK 10

Key features due in JDK 10 include:

  • A local-variable type inference, to enhance the language to extend type inference to local variables. The intent is to reduce the “ceremony” associated with coding while maintaining a commitment to static type safety.
  • A clean garbage collector interface to improve source-code isolation of different garbage collectors. The goals for this effort include better modularity for internal garbage collection code in the HotSpot virtual machine and making it easier to add a new garbage collector to HotSpot.
  • Parallel full garbage collection for the G1 garbage collector. The intent is to improve worst-case latencies by implementing parallelism.
  • Enabling HotSpot to allocate the object heap on an alternative memory device, such as an NVDIMM memory module, specified by the user. This feature envisions that future systems may have heterogeneous memory architectures.
  • Enabling the Grall Java-based just-in-time compiler to be used in an experimental fashion on the Linux/x64 platform.
  • Consolidation of the repositories of the JDK forest into a single repository, to streamline development. The code base until now has been broken into multiple repos, which can cause problems with source-code management.
  • Application class-data sharing, to reduce the footprint by sharing common class metadata across processes. Startup time is improved as well.
  • Thread-local handshakes, for executing a callback on threads without performing a global VM safepoint. Individual threads could be stopped instead of either all threads or no threads.
  • Provision of a default set of root certificate authority certificates in the JDK. The goal is to open-source root certificates in Oracle’s Java SE Root CA program to make OpenJDK builds more enticing to developers.

JDK 10’s planned development phases

Oracle’s Java SE download page does not yet offer access to JDK 10. But there are still additional phases for the development of JDK 10 before the final release. These include:

  • January 11, 2018: Completion of all planned tests, at least once, on all supported platforms.
  • January 18, 2018: Rampdown phase 2, with only “showstopper” bugs to be fixed.
  • February 22, 2018: Final release candidate.

Fresh from the long-awaited release of Java Development Kit (JDK) 9 on September 21, Oracle is mapping out planned upgrades for Java, including for the Java 18.3 version due in March 2018 as part of a new, six-month release schedule for standard Java.

The long-term Java roadmap

Here is what Oracle has said is under consideration for the next and later versions of Java SE:

  • The Amber Project, which has been an incubator for smaller, productivity-oriented language features that include local-variable type inference, to decrease the ceremony associated writing Java code; enhanced enums, to improve expressiveness of the enum construct by allowing type variables in enums and performing sharper type-checking for enum constants; and lambda leftovers, to boost the usability of lambda and method references.
  • Project Panama, to interconnect JVM and native code, featuring native function calling from the JVM and native data access from the JVM.
  • Valhalla, an incubator project for advanced Java VM and language feature candidates including value types and generic specialization.
  • Project Loom, to reduce complexity in writing concurrent applications. The plan calls for adding alternative, user-mode thread implementations, delimited continuations, and other constructs involving call-stack manipulation. The main goal of this proposal is to offer an alternative implementation of threads, managed by schedulers written in Java. The Java programming model of ordinary Java threads would be preserved while performance is improved and the footprint reduced.

With the new six-month release schedule, features that miss one release may be delayed as few as six months, when the next release comes out. Beyond what has been announced for JDK 10, Oracle has not committed to when any of the new proposed features will actually be made available in Java.