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