JDK17會代替JDK8嗎?

語言: CN / TW / HK

theme: fancy

俗話説:“它發認它發,我用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. 虛擬線程
  10. ...

比如SpringBoot3.0的源碼中就用到了新特性: image.png image.png

雖然JDK17跟JDK8相比較確實增加了很多新特性,不管是語法上、性能上,都在積極的吸取其他語言的特點,並且整個Java生態也在不斷的升級為JDK17,但是對於公司而言,除非是新項目、新應用,不然是不太可能把現有項目升級到JDK17的。

你們項目中,現在用的是JDK哪個版本呢?

歡迎關注我的公眾號:Hoeller

qrcode_for_gh_a54d62abe870_258.jpg