On Friday, Oracle released the JDK 11 first Release Candidate. It includes features such as nest-based access control, dynamic class-file constants, improved Aarch64 intrinsics, and more. The general availability of the final release of JDK 11 is scheduled for next month on the 25th.
Every six months, in June and December, the community initiates the release cycle for the next JDK feature release. The work proceeds over the next three months in three phases: Rampdown Phase One (RDP 1), Rampdown Phase Two (RDP 2), and Release-Candidate Phase (RC).The durations of the phases for JDK 11 are four weeks for RDP 1, three weeks for RDP 2, and five weeks for RC.
Nest is introduced to allow classes that are a logically part of the same code entity, but are compiled to distinct class files, access each other’s private members.
To support a new constant-pool form named, CONSTANT_Dynamic, Java class-file format is extended. Loading this pool will delegate creation to a bootstrap method, just as linking an invokedynamic call site delegates linkage to a bootstrap method.
Intrinsics are used to improve performance by leveraging CPU architecture-specific assembly code for a given method, instead of a generic Java code. The existing string and array intrinsics are improved and new intrinsics are implemented for the java.lang.Math package on AArch64 processors:
A new garbage collector named, Epsilon is introduced that handles memory allocation but does not implement any actual memory reclamation mechanism. The JVM will shut down once the available Java heap is exhausted.
These modules are removed from the Java SE Platform and the JDK. Earlier, they were deprecated in the Java SE 9, indicating their removal in a future release.
The HTTP Client API, introduced as an incubating API in JDK 9 and JDK 10 is standardized. This API received a number of rounds of feedback that resulted in significant improvements. The module name and the package name of the standard API will be java.net.http.
When declaring the formal parameters of implicitly typed lambda expressions, the use of ‘var’ is allowed. Now the following expression:
(var x, var y) -> x.process(y)
is equivalent to:
(x, y) -> x.process(y)
The existing platform APIs will support version 10.0 of the Unicode Standard. It is supported in the following classes:
Flight Recorder, a low-overhead data collection framework is provided for troubleshooting Java applications and the HotSpot JVM.
An implementation of the ChaCha20 and ChaCha20-Poly1305 ciphers as specified in RFC 7539 are added. ChaCha20 is a relatively new stream cipher that can replace the older, insecure RC4 stream cipher.
The Z Garbage Collector, also known as ZGC, is a scalable low-latency garbage collector. ZGC is a concurrent, single-generation, region-based, NUMA-aware, compacting collector.
To know more about these updates and improvements in detail, head over to its official website, OpenJDK.
JavaFX 11 to release soon, announces the Gluon team
State of OpenJDK: Past, Present and Future with Oracle
Mark Reinhold on the evolution of Java platform and OpenJDK