The journey to JDK 11 begins: What’s in, what’s out
© Shutterstock /Marta Design
JDK 10 has just been released but even though we’re still in a celebratory mood, we’re keeping an eye on JDK 11, due in September this year (thank you, six-month release cadence). Here’s what we know so far about the next Java version.
Java SE 10 (JDK 10) is here but that’s not the only reason to celebrate: this is also the first release in Oracle’s new six-month cycle. As Simon Ritter, Deputy CTO of Azul Systems pointed out in our latest interview series, “the special thing about JDK 10 is that it’s the fastest release of Java in its 23-year history.
JDK 11 should be released on September 25th. Mark Reinhold, the Chief Architect of the Java Platform Group at Oracle, announced in a message to the OpenJDK mailing list that the proposed schedule for JDK 11 is as follows:
2018/06/28 Rampdown Phase One (fork from main line)
2018/07/19 All Tests Run
2018/07/26 Rampdown Phase Two
2018/08/16 Initial Release Candidate
2018/08/30 Final Release Candidate
2018/09/25 General Availability
The milestone definitions are the same as for JDK 10. As always, if no —reasoned— objections are raised by 23:00 UTC next Thursday, 29 March, or if they’re raised and then satisfactorily answered, this will be the schedule for JDK 11.
— Mark Reinhold (@mreinhold) 27. Februar 2018
What’s in JDK 11 so far
- 309: Dynamic Class-File Constants
- 318: Epsilon: An Arbitrarily Low-Overhead Garbage Collector
- 323: Local-Variable Syntax for Lambda Parameters
Sure, three features may not seem like much but the JDK 11 journey has just begun.
JEP 309: Dynamic Class-File Constants
Summary: Extend the Java class-file format to support a new constant-pool form,
CONSTANT_Dynamic. Loading a
CONSTANT_Dynamic will delegate creation to a bootstrap method, just as linking an
invokedynamic call site delegates linkage to a bootstrap method.
JEP 318: Epsilon: A No-Op Garbage Collector
Summary: Develop a GC that handles memory allocation but does not implement any actual memory reclamation mechanism. Once the available Java heap is exhausted, the JVM will shut down.
JEP 323: Local-Variable Syntax for Lambda Parameters
var to be used when declaring the formal parameters of implicitly typed lambda expressions.
The Java EE and CORBA modules were deprecated in Java SE 9 with the declared intent to remove them in a future release. Therefore, they will be removed in JDK 11.
Read more about the risks of removing the Java EE modules here. As far as CORBA is concerned, there won’t be a standalone version unless third parties take over maintenance of the CORBA APIs, ORB implementation, CosNaming provider, etc.
JavaFX as a separate module
Speaking of JDK 11 and what’s not going to be included, it should be noted that starting with the next release, JavaFX will be available as a separate module, decoupled from the JDK.
Oracle wrote in a white paper that JavaFX new fixes will continue to be supported on Java SE 8 through March 2022 and announced that they are “working with interested third parties to make it easier to build and maintain JavaFX as a separately distributable open-source module.”
If you want to read more about the decision to decouple JavaFX from the JDK, check out this article by Johan Vos in which he weighs in on the news and explains why it makes perfect sense to move the development of JavaFX to an open system.