Making a list and checking it twice

Keeping track of JDK 11: Two new JEPs targeted for release

Jane Elizabeth
JDK 11
© Shutterstock / Merkushev Vasiliy

What’s going on with JDK 11? We’re going to take a look at how this version is moving along, including a look at the new JEPs.

Thanks to Java’s new release schedule, it seems like we’re always counting down to a new JDK update. Today, we’re taking a look at what’s in JDK 11.

What’s new to target for JDK 11

JEP 329: ChaCha20 and Poly1305 Cryptographic Algorithms

Right now, the only other widely adopted stream cipher. RC4, has long been deemed insecure. Currently, the industry consensus holds that ChaCha20-Poly1305 is more secure and it’s seen a fairly wide adoption across TLS implementations as well as other cryptographic protocols. By adopting JEP 329, the JDK will be on par with other cryptographic toolkits and other TLS implementations.

The goal of this JEP is to provide ChaCha20 and ChaCha20-Poly1305 Cipher implementations. These algorithms will be implemented in the SunJCE provider. It will also provide a KeyGenerator implementation that creates keys suitable for ChaCha20 and ChaCha20-Poly1305 algorithms. Additionally, it will provide an AlgorithmParameters implementation for use with the ChaCha20-Poly1305 algorithm.

For more information, head over to the tracking document for JEP 329.

JEP 330: Launch Single-File Source-Code Programs

Single-file programs — where the whole program fits in a single source file — are common in the early stages of learning Java, and when writing small utility programs. In this context, it is pure ceremony to have to compile the program before running it. In addition, a single source file may compile to multiple class files, which adds packaging overhead to the simple goal of “run this program”. It is desirable to be able to run the program directly from source with the java launcher.

For more information, head over to the tracking document for JEP 330.

SEE ALSO: JDK 11: End of the road for Java EE modules

What’s in JDK 11 so far

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 321: HTTP Client (Standard)

Summary: Standardize the incubated HTTP Client API introduced in JDK 9, via JEP 110, and updated in JDK 10.

JEP 323: Local-Variable Syntax for Lambda Parameters

Summary: Allow var to be used when declaring the formal parameters of implicitly typed lambda expressions.

JEP 324: Key Agreement with Curve25519 and Curve448

Summary: Implement key agreement using Curve25519 and Curve448 as described in RFC 7748.

JEP 327: Unicode 10

Summary: Upgrade existing platform APIs to support version 10.0 of the Unicode Standard.

JEP 328: Flight Recorder

Summary: Provide a low-overhead data collection framework for troubleshooting Java applications and the HotSpot JVM.

Jane Elizabeth
Jane Elizabeth is an assistant editor for

Leave a Reply

Be the First to Comment!

Notify of