What is new in Java 17 ?
2 minute read


This is an alive post of what will become Java 17, and, as expected, this post will expand and change over time, until the development of Java 17 is frozen in 2021. I am planning to update this post when a new feature (JEP) is targeted for JDK 17, or when there is an important update on an already targeted JEP.

If something is implemented in an incubator module, it is not a permanent feature and it is released to get feedback from developers. API in such a module may change or completely removed (not released in any future JDK release). You need to use --add-modules to use incubator modules.

If something is a preview feature, it is fully specified and implemented, but provided in a release to gather feedback, so it is not a permanent change yet. You need to use --enable-preview to use such features.


  • 2021/03/21: First post.

Java 17 Features

The list is taken from the OpenJDK JDK 17 project page.

JEP 356: Enhanced Pseudo-Random Number Generators

This JEP will make it easy to use custom PRNG algorithms and provide a few concrete PRNG implementations.

It is difficult at the moment to have a custom PRNG implementation that can easily replace java.util.Random, because it is not an interface. This JEP will introduce a new interface called RandomGenerator, and also four specialized sub-interfaces.

This JEP will add six splittable (LXM family) and two other (Xoshiro256Plus and Xoroshiro128Plus) PRNG algorithm implementations.

JEP 382: New macOS Rendering Pipeline

This JEP will change Java 2D internal rendering pipeline from OpenGL to Apple Metal API. This is going to be an internal change with no visible change on any APIs.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.