Significant Changes in JDK 17 Release

See JDK 17 Release Notes for additional descriptions of the new features and enhancements, and API specification in JDK 17.

The following are some of the updates in Java SE 17 and JDK 17:

New Language Feature

  • Sealed Classes, first previewed in Java SE 15, is a permanent feature in this release. Sealed classes and interfaces restrict which other classes or interfaces may extend or implement them. See JEP 409: Sealed Classes and Sealed Classes in Java Platform, Standard Edition Java Language Updates guide.

Library Changes

Other Changes

  • By default, all internal elements of the JDK are strongly encapsulated, except for critical internal APIs such as sun.misc.Unsafe. However, it will no longer be possible to relax the strong encapsulation of internal elements using a single command-line option, as it was possible in JDK 9 through JDK 16. See JEP 403: Strongly Encapsulate JDK Internals by Default.
  • The floating-point operations are now consistently strict, rather than having both strict floating-point semantics (strictfp) and subtly different default floating-point semantics. See JEP 306: Restore Always-Strict Floating-Point Semantics.

Deprecations

Preview Features and Incubator Modules

See JEP 12: Preview Features for more information about preview features and JEP 11: Incubator Modules for more information about incubator modules.

Removed APIs, Tools, and Components

See:

In addition, there are security related updates that you need to be aware of. See: Security Updates in JDK 17.