继 SpringBoot 3.0,Elasticsearch8.0 官宣:拥抱 Java 17
大家好,我是君哥。
新版任你發(fā),我用 Java 8,這可能是當(dāng)下 Java 開發(fā)者的真實寫照。不過時代可能真的要拋棄 Java 8,全面擁抱 Java 17 了。
Spring Boot 3.0
前些天,相信小伙伴們都注意到了,SpringBoot 發(fā)布了 3.0.0-M1 版本,并官宣全面擁抱 Java 17,下面的截圖是 Release Notes 中的一段:
其他的新特性大家可以去 Github 查看。
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0.0-M1-Release-Notes/16c166b5fb4232998a8cfd3966c2851ec1eddf02
Spring Boot 3.0.0-M1 版本發(fā)布,也意味著 Spring Boot 進入 3.x 版本的迭代,同時也看到,3.x 版本開始 Spring Boot 要全面擁抱 Java 17 了。
Elastic 8
湊巧的是,2022 年 2 月 11 日,Elastic 也發(fā)布了新版本 Elastic 8,這個版本跟上個版本間隔了 3 年。下面的截圖是 Issue 79873:
可以看到,運行新的 Elasticsearch 版本需要 Java 17 了。
Java 17
從 Java 8 以后,每個版本發(fā)布都增加了哪些新特性呢?我們一起來看一下。
Java 9
私有接口方法
默認垃圾收集器改為 G1
HTTP client,支持 WebSocket、HTTP/2、HTTPS/TLS、非阻塞 API。
Java 10
局部變量類型推斷,可以使用 var 類型來定義變量。
不可變集合
G1 支持并行 Full GC
基于 Java 的 JIT 編譯器 Graal
支持在不執(zhí)行全局安全點的情況下執(zhí)行線程回調(diào),這樣可以在不停止所有線程的情況下停止單個線程。
Java 11
標(biāo)準(zhǔn) HTTP Client 升級
引入 ZGC 垃圾收集器
Flight Recorder,可以收集基于 OS、JVM和JDK 事件產(chǎn)生的數(shù)據(jù)。
對Stream、Optional、集合 API進行增強。
Java 12
引入 Switch 表達式
Shenandoah GC 垃圾收集算法
JMH 基準(zhǔn)測試
G1 支持可中斷的 mixed GC,將 Mixed GC 拆分為強制部分和可選部分,強制部分一定會被回收,可選部分可以不被回收,這樣垃圾收集過程中優(yōu)先處理強制集,更容易滿足暫停時間目標(biāo)。
G1 可以歸還不使用的內(nèi)存給操作系統(tǒng)
Java 13
switch 優(yōu)化更新,增加 yield 關(guān)鍵字用于返回結(jié)果。
ZGC 支持將未使用的內(nèi)存歸還操作系統(tǒng)
引入了文本塊,可以使用 """ 三個引號表示文本塊,示例代碼如下:
Java 14
instanceof 語法簡化,可以直接給對象賦值:
引入 Record,類似于枚舉類型,具有 Lombok 功能,可以自動生成構(gòu)造器、equals、getter 等方法。
放棄 CMS
Java 15
引入 hidden class
String.substring 優(yōu)化,如果長度為 0,返回 null
引入 Sealed class
Java 16
Stream新增toList方法
提供jpackage
java.time 根據(jù)時段獲取時間
Java 17
升級 switch 使用,switch可直接用 instanceof 模式匹配選擇,不過需要提前做 null 判斷(下面代碼選自 oschina):
默認啟用 Parallel GC
增強TreeMap
統(tǒng)一日志異步刷新,先將日志寫入緩存,獨立線程負責(zé)刷新到相應(yīng)輸出。
上面的版本只有 Java 11 和 Java 17 是 LTS(Long Term Support) 版本。
總結(jié)
全面擁抱 Java 17 還沒有真的到來,但已經(jīng)在路上了,作為程序員的我們應(yīng)該做準(zhǔn)備了。
總結(jié)
以上是生活随笔為你收集整理的继 SpringBoot 3.0,Elasticsearch8.0 官宣:拥抱 Java 17的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 NetCoreBeauty 优化
- 下一篇: 想说爱你不容易 | 使用最小 WEB A