jdk 21发布的意义

jdk 21 最大的功能是虚拟线程,是一种绿色线程(具体可以看周志明老师的书籍《深入理解java虚拟机》),目前 jvm 与操作系统的线程是一一对应的关系。

使用了虚拟线程可以减少资源消耗,减少操作系统上下文切换,不然的话多线程执行时操作系统会频繁在用户态与内核态之间切换,在多线程应用中具有重大意义。

之前的 openjdk loom 项目转正,成为 openjdk 的一部分。

虚拟线程介绍

https://zhuanlan.zhihu.com/p/648421339

jdk 21 oracle 官方介绍

https://www.oracle.com/java/technologies/downloads/#java21

jdk 21发布的意义_第1张图片

lts 支持到 2026年9月,除了 jdk 21,还有 3个lts版本,分别是 jdk 8、jdk 11、jdk17。

https://www.oracle.com/java/technologies/downloads/#java8

Java SE subscribers will receive JDK 8 updates until at least December 2030.

https://www.oracle.com/java/technologies/downloads/#java11

Java SE subscribers will receive JDK 11 updates until at least September 2026.

https://www.oracle.com/java/technologies/downloads/#java17

JDK 17 will receive updates under these terms, until September 2024, a year after the release of the next LTS.

jdk 8 的 lts 时间最长,到 2030年12月。

但是考虑到许可证的问题,一般部署jdk都使用的是 openjdk。

https://jdk.java.net/java-se-ri/21

https://spring.io/blog/2023/06/15/spring-framework-6-1-m1-released

https://spring.io/blog/2023/07/13/spring-framework-6-1-m2-released

https://spring.io/blog/2023/07/19/spring-framework-6-1-m3-released

https://spring.io/blog/2023/08/17/spring-framework-6-1-m4-released

https://spring.io/blog/2023/09/14/spring-framework-6-1-m5-released

https://github.com/spring-projects/spring-framework/wiki/What%27s-New-in-Spring-Framework-6.x

jdk 21发布的意义_第2张图片

现在 spring 官方一直在发布 milestone 版本,过了不久就会发布正式的 spring 6.1 版本相关的组件。spring boot 3.2  开始支持 spring 6.1 相关组件。

https://spring.io/blog/2023/09/09/all-together-now-spring-boot-3-2-graalvm-native-images-java-21-and-virtual

版本之间的对应关系
openjdk最小版本 spring 最小版本 spring boot 最小版本
21 6.1 3.2

看国内的情况,jdk 21的使用需要一段时间,目前 jdk 8 还是主流,目前因为开源组件安全漏洞扫描需要升级到 spring boot 3.x,但是spring官方使用了jdk17进行代码编译,所以使用jdk 版本最低是 17,这就会面临一个代码修改的问题,例如代码中引用了 servlet相关api。

对于升级问题,除非是追求性能以及大型互联网公司会升级使用里面的功能,升级过程不可避免会有代码修改以及其他的问题,对于这些问题一般是程序能正常运行代码能不动就不动。

如果是新项目可以直接使用 openjdk 21。

你可能感兴趣的:(java,spring,java,开发语言)