JDK 17 is officially released and Oracle official announcement is provided free of charge! “You can send the new version, I use JDK 8” or become history?

Time:2021-12-2

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.

Feature introduction

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

macOS/AArch64 Port

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

Sealed Classes

Sealing class

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-SpecificDeserialization Filters

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 support

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.