Now that Oracle has released Java Development Kit 10, the next version, JDK 11, is just around the corner. Due in September 2018 as part of Oracle’s new six-month release cadence for the standard edition of Java, Version 11 has just a handful of announced features so far.
Set to be a long-term support release unlike JDK 10, JDK 11 will be a reference implementation of Java Platform, Standard Edition (Java SE) 11. JDK 11 is set to receive premier-level support from Oracle until September 2023 and extended support, featuring patches and security alerts, until 2026.
New features planned for the Java 11 JDK
At this point, JDK 11 is set to have just three new features, although more are expected later. The planned new features include:
- The Epsilon garbage collector, billed as a “no-op” collector, will handle memory allocation without implementing any actual memory reclamation mechanisms. Epsilon’s use cases include testing for performance, memory pressure, and the virtual machine interface. It also could be used for short-lived jobs.
- A local-variable syntax for lambda parameters should align the syntax of a formal parameter declaration in an implicitly typed expression with the syntax of a local variable declaration. This would allow
varto be used when declaring formal parameters of a implicitly typed lambda expressions.
- The Java class-file format will be extended to support a new constant pool form,
CONSTANT_Dynamic. The goal is to reduce the cost and disruption of developing new forms of materializable class-file constraints.
What’s being dropped from Java JDK 11
The Java EE EE and CORBA modules were deprecated in Java SE 9, with the intent to remove them in a later release—that is now set to be JDK 11.
Java SE 6, released in December 2006, had included a full web services stack for the convenience of developers—including four technologies built for the Java EE platform: JAX-WS (Java API for XML-based Web Services, JAXB (Java Architecture for XML Binding), JAF (JavaBeans Activation Framework), and Common Annotations for Java. Over time, the Java EE versions evolved, leading to difficulties in the Java SE, such as including technologies irrelevant to Java SE and more difficult maintenance across the two Java editions. With standalone versions of the Java EE technologies available from third-party sites, Oracle says there is no longer a need to have them in Java SE or in the JDK.
Still, some applications will not compile or run if they rely on out-of-the-box support in the JDK for Java EE APIs and tools. Binary and source incompatibilities would arise when migrating JDK 6, 7, or 8 to a later release. Oracle says that developers affected by these risks can deploy alternate versions of Java EE technologies instead.
CORBA dates back to the 1990s, and Oracle says that today there is no significant interest in developing modern Java applications with CORBA. And the costs of maintaining CORBA support outweigh its remaining benefits.
But the removal of CORBA risks having CORBA implementations that will not run if they include only a subset of CORBA APIs and expect the JDK to provide the remainder. There is no third-party CORBA version, and it is uncertain if a third party could take over CORBA API maintenance.
JavaFX is being removed so it is not tied to Java JDK’s twice-annual update schedule.