Oracle's release of Java 17 this week marked a major milestone, as it is the first Long-Term Support (LTS) version of the widely deployed programming language since 2018.
Java moved to a rapid release cadence for features in recent years, with incremental updates out every six months that are only supported until a new version comes out. Oracle released the last incremental update for Java—Version 16—in March, but with the release of Java 17, that version is no longer supported. In contrast, because it is an LTS release, Java 17 will be supported for the next eight years.
As a Long-Term Support release, Java 17 also serves as a "roll-up" release for features that were introduced in the incremental Java updates over the last three years since the last LTS version.
"If developers are only just now seeing everything since the last LTS [JDK 11], there’s so much goodness, where do you even start?" Chad Arimura, vice president of Java Developer Relations at Oracle, told ITPro Today.
New Features in Oracle Java 17 LTS Release
Arimura highlighted a number of enhancements that will be new for LTS users, including Java Flight Recorder (JFR), which first appeared in the incremental Java 14 release in March 2020. JFR provides diagnostic profiling capabilities to help optimize Java applications.
"For those on the operational side or those interested in the JVM [Java Virtual Machine] enhancements, Java Flight Recorder and its event streaming functionality are pushing observability forward even further, surfacing an amazing amount of data out of the JVM," Arimura said.
Java 17 also boasts the Z Garbage Collector (ZGC), which first landed in the Java 15 incremental milestone and has been steadily improved in the releases since. Arimura noted that the ZGC is a garbage collector with the goal of sub-millisecond pause times across terabyte heaps.
"And let’s not forget that even if none of the functionality above is utilized, applications will likely get performance boosts just by upgrading due to thousands of fixes and enhancements not captured in JEPs [JDK Enhancement Proposals]," he noted.
Sealed Classes Debut in Java 17 LTS
While Java 17 has brought features from incremental release into an LTS, it also has a few new features of its own.
Among the most noteworthy new features is a capability known as Sealed Classes, which was introduced as a preview feature in Java 15 and is now considered ready for production in Java 17.
"Sealed Classes enables developers to better model the real world in code by allowing the author of a class or interface to control which code can implement it," Arimura explained.
New Licensing Options for Oracle Java 17 LTS
Alongside the Java 17 release, Oracle is also introducing a new license known as the Oracle No-Fee Terms and Conditions (NFTC) license.
"Oracle is making the industry-leading Oracle JDK available for free, including all quarterly security updates including commercial and production use for one full year after the next LTS release, starting with JDK 17," Arimura said.
There is also an open-source version of Java—OpenJDK—that has always been free and will remain so for OpenJDK 17.
"The Oracle JDK and Oracle’s OpenJDK are functionally equivalent, but we believe most developers will choose the Oracle JDK now either with our commercial Java SE Subscription offering, or with the free in-production new NFTC license," Arimura said.