

There are two minor changes to how the feature worked in JDK 15. It is included in the Java SE 16 Language Specification and does not require the -enable-preview command line flag for compilation and runtime. This feature has been finalized in JDK 16.

This was introduced as a preview feature in JDK 14 and continued in preview mode in JDK 15. There are no new syntax constructs in JDK 16, but there are still several significant changes. I’ll take my usual approach of dividing the post into language changes, library additions, JVM related updates and, finally, anything else. Providing new functionality without making it part of the standard, gathering feedback from developers and potentially making changes has delivered an improved process for the JDK development. I think this is one of the biggest benefits of the faster release cadence. JDK 16 contains quite a few new things, although several of them are continuations or finalization of incubator modules or preview features from earlier releases. Not all releases are created equal and, depending on how feature development phases align some will have more features than others. As usual, I will summarise all the new features with some commentary on their potential impact on Java application development. How time flies! Even in these extraordinary times, it seems hard to believe another six months have passed, and we now have a new release of the JDK.
