俗话说:“它发认它发,我用Java8”。

但是跟着Spring 6.0以及SpringBoot 3.0的发布,JDK17似乎大有取代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.

Spring 6.0&SpringBoot 3.0对AOT的支撑,能极大进步使用的启动速度,从而能够补偿Java在云原生、Serverless等领域的缺陷,据我所知,某著名大厂内部已经在进行晋级了。

别的,JDK17是一个LTS(长期支撑版),能够免费商用到2029年,JDK17本身在性能上也有优化,比方关于NIO的性能优化,至少提升了10%。

跟着各大框架对JDK17的支撑,JDK17取代JDK8仅仅时间问题。

这儿我大致列以下JDK9-JDK17中几个要害的新特性:

  1. sealed 密封类
  2. 文本块
  3. record 纪录类
  4. G1成为默认垃圾收集器
  5. ZGC的完善与晋级
  6. JDK模块化
  7. JFR飞行器
  8. 新swich表达式
  9. 虚拟线程

比方SpringBoot3.0的源码中就用到了新特性:

JDK17会代替JDK8吗?
JDK17会代替JDK8吗?

虽然JDK17跟JDK8相比较的确增加了许多新特性,不管是语法上、性能上,都在积极的汲取其他言语的特点,并且整个Java生态也在不断的晋级为JDK17,但是关于公司而言,除非是新项目、新使用,否则是不太可能把现有项目晋级到JDK17的。

你们项目中,现在用的是JDK哪个版本呢?

欢迎关注我的公众号:Hoeller

JDK17会代替JDK8吗?