As the saying goes, 'It recognizes it, I use Java8.'.
But with the release of Spring 6.0 and SpringBoot 3.0, JDK17 seems to have a strong trend of replacing JDK8.
Spring Boot 3.0 requires Java 17 as a minimum version. If you are currently using Java 8 or Java 11, you'll need to upgrade your JDK before you can develop Spring Boot 3.0 applications.
The support for AOT in Spring 6.0 and SpringBoot 3.0 can greatly improve the startup speed of applications, thus making up for the shortcomings of Java in cloud native, Serverless and other fields. As far as I know, a well-known manufacturer is already upgrading internally.
In addition, JDK17 is an LTS (Long Term Support) version that can be commercially used for free until 2029. JDK17 itself also has performance optimizations, such as improving NIO performance by at least 10%.
With the support of various frameworks for JDK17, it is only a matter of time before JDK17 replaces JDK8.
Here I roughly list several key new features in JDK9-JDK17:
Sealed class
Text block
Record class
G1 becomes the default garbage collector
Improvement and Upgrade of ZGC
JDK modularization
JFR aircraft
New swing expression
Virtual thread
...
For example, the source code of SpringBoot 3.0 incorporates new features
![]()
![]()
Although JDK17 has indeed added many new features compared to JDK8, actively absorbing the characteristics of other languages in terms of syntax and performance, and the entire Java ecosystem is constantly upgrading to JDK17, it is unlikely for companies to upgrade existing projects to JDK17 unless it is a new project or application.
Which version of JDK are you currently using in your project?