Java SE 17 is live! Download JDK 17 from the Java SE Downloads page. This is the latest Long-Term-Support (LTS) release. For more information about LTS releases, see Oracle Java SE Support Roadmap.
See JDK 17 Release Notes for detailed information about this release. The following are some of the important additions and updates in Java SE 17 and JDK 17:
New Language Features
- The preview feature Pattern Matching for switch Expressions and Statements is introduced in this release. This feature allows an expression to be tested against a number of patterns, each with a specific action, so that complex data-oriented queries can be expressed concisely and safely. See JEP 406: Pattern Matching for switch (Preview) and Pattern Matching for switch Expressions and Statements in the Java Platform, Standard Edition Java Language Updates guide.
- 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 the Java Platform, Standard Edition Java Language Updates guide.
- 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.
See Significant Changes in JDK 17 Release for more information.