Oracle JDK 17 was officially released. JDK 17 is a long-term support (LTS) version, that is, it has received 8 years of technical support from September 2021 to September 2029.
JDK 17 version has updated many practical new features. The new features, detailed introduction and application in actual development of this version will be described in the following pages, which will not be described in detail here. Friends interested in the new features of JDK 17 can pay attention to the updates of subsequent articles.
JDK 17 has been updated to include 14 features, as shown in the following table:
Restore Always-Strict Floating-Point Semantics
Restores the floating point semantics of always strict mode
EnhancedPseudo-Random Number Generators
Enhanced pseudo-random number generator
New macOS RenderingPipeline
New MacOS rendering pipeline
Supports porting JDK to MacOS or aarch64
Deprecate the AppletAPI for Removal
Discard the applet API to be removed
Note: JEP 289 in JDK 9 has previously deprecated the applet API, but it has not been deleted.
Strongly EncapsulateJDK Internals
Strong encapsulation JDK internal API
Pattern Matching forswitch (Preview)
Switch pattern matching enters the preview stage
Remove RMI Activation
Remove RMI (remote method call) activation mechanism
Note: the seal class is proposed by JEP 360 and provided as a preview function in JDK 15. They are proposed again and improved by JEP 397 and are provided in JDK 16 as a preview function. The JEP recommends completing the sealing class in jdk17, which has no change from JDK 16.
Remove theExperimental AOT and JIT Compiler
Remove experimental AOT and JIT compilers
Deprecate theSecurity Manager for Removal
Discard the security manager to be removed
Note: the security manager is deprecated and removed in subsequent versions. The security manager can be traced back to Java 1.0. For many years, it has not been the main means to protect client-side java code, and it is rarely used to protect server-side code. In order to push Java forward, Oracle intends to discard the security manager in order to delete it together with the old applet API (JEP 398).
Foreign Function& Memory API (Incubator)
External function and memory API (incubator) incubation phase
Note: Java programs can interoperate with code and data other than Java runtime through this API. By effectively calling external functions (i.e. code outside the JVM) and safely accessing external memory (i.e. memory not managed by the JVM), the API enables Java programs to call local libraries and process local data without JNI.
Vector API (SecondIncubator)
Vector API (second incubator) second incubation stage
Note: an API is introduced to express vector calculations, which are reliably compiled into the best vector instructions on the supported CPU architecture at runtime, so as to achieve better performance than equivalent scalar calculations.
Context specific deserialization filter
Note: allows applications to configure context – and dynamically selected deserialization filters through a JVM wide filter factory that is called to select a filter for each individual deserialization operation.
Free Java License
According to the latest free Java license officially released by Oracle, Oracle JDK can be used in production environment for free. Free Java license summary:
1) Oracle JDK is available free of charge, including all quarterly security updates, including commercial and production purposes.
2) The new license is an Oracle free terms and conditions (nftc) license. This Oracle JDK license allows all users to use it free of charge, even for commercial and production purposes. Redistribution is allowed without charge.
3) Developers and organizations can now easily download, use, share, and redistribute the Oracle JDK.
4) Oracle will provide these free versions and updates from JDK 17 and continue to provide them for a full year after the next lts release. Note that previous versions are not affected by this change.
5) Oracle will continue to provide the Oracle openjdk version under the GPL according to the same version and schedule since Java 9.
Jdk17 download address:https://jdk.java.net/17/
Jdk17 technical documents:https://docs.oracle.com/en/java/javase/17/index.html
Spring officially announced that spring framework 6.0 and spring boot 3.0 will be based on JDK 17. It is expected to release the official candidate (RC) version of spring framework 6.0 in the second half of 2022.
As a developer, do you or your company currently use JDK7 or jdk8? Welcome to leave a message below.