Java 近聞:JDK 20、新的 JEP 草案、JobRunr 6.0、GraalVM 22.3.1
來源|InfoQ、 作者 | Michael Redlich
譯者 | 明知山、 策劃 | 丁曉昀
OpenJDK
Oracle Java 語言和工具團(tuán)隊主要成員 Angelos Bimpoudis更新 了 JEP Draft 8288476(模式、instanceof 和 switch 中的原始類型)。該草案屬于 Amber 項目,提議允許原始類型出現(xiàn)在模式中的任何地方,以此來增強(qiáng)模式匹配。
Oracle Java 語言和 Java 虛擬機(jī)規(guī)范負(fù)責(zé)人 Alex Buckley 更新了 JEP Draft 8300684(預(yù)覽特性:一個向后,一個向前)。該草案建議重新評審 JEP 12(預(yù)覽特性)引入的預(yù)覽過程,以便對該過程進(jìn)行潛在的持續(xù)改進(jìn)。
Oracle 技術(shù)團(tuán)隊主要成員 Wang Jun更新 了 JEP Draft 8301034(Key Encapsulation Mechanism API),這個 JEP 建議:滿足標(biāo)準(zhǔn) 密鑰封裝機(jī)制(KEM)算法的實(shí)現(xiàn),通過更高級別的安全協(xié)議滿足 KEM 用例,允許可插拔的 KEM 算法 Java 或本地實(shí)現(xiàn)。
PatientEXP 創(chuàng)始人兼首席執(zhí)行官 Archie Cobbs 更新了 JEP Draft 8300786(不再要求構(gòu)造函數(shù)中先出現(xiàn) super() 和 this())。該草案同樣屬于 Amber 項目,建議:允許沒有引用正在創(chuàng)建的實(shí)例的語句出現(xiàn)在構(gòu)造函數(shù)的 this() 或 super() 調(diào)用之前,并保留構(gòu)造函數(shù)現(xiàn)有的安全性和初始化保證。
JDK 20
根據(jù) JDK 20 的 發(fā)布計劃,Oracle Java 平臺組首席架構(gòu)師 Mark Reinhold 正式 宣布JDK 20 已進(jìn)入 Rampdown Phase Two,這標(biāo)志著將于 2023 年 3 月發(fā)布的 GA 版本持續(xù)穩(wěn)定。關(guān)鍵的錯誤,如回歸或嚴(yán)重的功能問題,可以被修復(fù),但必須通過 Fix-Request 流程批準(zhǔn)。
JDK 20 的最后 6 個特性包括:
- JEP 429:作用域值(孵化器);
- JEP 432:記錄模式(第二次預(yù)覽);
- JEP 433:switch 的模式匹配(第四次預(yù)覽);
- JEP 434:外部函數(shù)和內(nèi)存 API(第二次預(yù)覽);
- JEP 436:虛擬線程(第二次預(yù)覽);
- JEP 437:結(jié)構(gòu)化并發(fā)(第二輪孵化器)。
JDK 20早期訪問版本的 Build 33 已于上周發(fā)布,其中包括針對 Build 32 的 更新 和對各種問題的修復(fù)。關(guān)于這個版本的更多細(xì)節(jié)可以在 發(fā)布說明 中找到。
JDK 21
JDK 21早期訪問版本 的 Build 7 也在上周可用,其中包括對 Build 6 的 更新 和各種 問題 的修復(fù)。關(guān)于這個版本的更多細(xì)節(jié)可以在 發(fā)布說明 中找到。
對于 JDK 20 和 JDK 21,開發(fā)者可以向 Java Bug 數(shù)據(jù)庫 報告 Bug。
GraalVM
Oracle發(fā)布 了 GraalVM 22.3.1 社區(qū)版,與 2023 年 1 月版的 Oracle 關(guān)鍵補(bǔ)丁更新公告 保持一致。這個版本包括 OpenJDK 19.0.2、17.0.6 和 11.0.18 的版本更新,以及 Node.js 16.18.1 的版本更新。關(guān)于這個版本的更多細(xì)節(jié)可以在 發(fā)布說明 中找到。
我們創(chuàng)建了一個高質(zhì)量的技術(shù)交流群,與優(yōu)秀的人在一起,自己也會優(yōu)秀起來,趕緊 點(diǎn)擊加群 ,享受一起成長的快樂。
TornadoVM
開源軟件技術(shù)公司 TornadoVM 發(fā)布了 TornadoVM 0.15,該版本提供了一個新的 TornadoVM API,還有其他一些改進(jìn):將 TaskSchedule 類重命名為 TaskGraph,添加新的類 ImmutableTaskGraph 和 TornadoExecutionPlan 來優(yōu)化運(yùn)行一組不可變?nèi)蝿?wù)圖的執(zhí)行計劃。該版本還包含了一個改進(jìn)的 TornadoVM Linux 安裝程序、一個改進(jìn)的帶可選參數(shù)的 TornadoVM 啟動腳本和一個新的文檔 站點(diǎn)。
曼徹斯特大學(xué)高級處理器技術(shù)研究小組副研究員 Juan Fumero 于 2020 年 3 月在 倫敦 QCon 上 介紹 了 TornadoVM,并在此后分享了這篇最新的 InfoQ技術(shù)文章。
Spring Framework
Spring Cloud Azure 5.0發(fā)布,支持 Spring Boot 3.0 和 Spring Cloud 2022.0.0,提高 無密碼連接 的安全性,并重新設(shè)計了 Spring Cloud Azure文檔。該版本還包括對一些已棄用 API 的 升級。
Spring Shell 3.0.0 和 2.1.6 版本已 發(fā)布,分別與 Spring Boot 3.0.2 和 2.7.8 兼容,修復(fù)了反向移植錯誤,改進(jìn)了對位置參數(shù)和集合類型的處理。關(guān)于這些版本的更多詳細(xì)信息,可以在 3.0.0 和 2.1.6 版本的發(fā)布說明中找到。
Spring Cloud 2022.0.1(代號 Kilburn)已 發(fā)布,隨之發(fā)布的還有 Spring Cloud 子項目(如 Spring Cloud Function、Spring Cloud Commons 和 Spring Cloud Gateway)的相應(yīng)小版本。這個版本與 Spring Boot 3.0.2 兼容。關(guān)于這個版本的更多細(xì)節(jié)可以在 發(fā)布說明 中找到。
Quarkus
Quarkus 2.16.0.Final發(fā)布,提供的新特性包括:支持 Redis 擴(kuò)展中的時間序列操作和數(shù)據(jù)預(yù)加載;支持 gRPC 擴(kuò)展中的自定義異常處理和 xDS;提高了緩存擴(kuò)展的配置靈活性;一些主要為了改善開發(fā)者體驗的安全相關(guān)改進(jìn)。關(guān)于這個版本的更多細(xì)節(jié)可以在 變更日志 中找到。
Quarkus 3.0.0 的 第三個 alpha 版本 包含了 Jakarta EE 10 流的第三個迭代:包括 2.15.0.Final、2.15.1.Final、2.15.2.Final、2.15.3.Final 和 2.16.0.Final 的一系列改進(jìn);使用了 SmallRye Mutiny 2.0 和 Java Flow API;Quarkus 類加載器對 Kotlin 的簡化處理,方便基于 Kotlin 的 Quarkus 擴(kuò)展的開發(fā)。關(guān)于這個版本的更多細(xì)節(jié)可以在 發(fā)布說明 中找到。
Micronaut
Micronaut 基金會 發(fā)布 了 Micronaut 3.8.3,修復(fù)了一些 Bug 并更新了一些模塊:Micronaut OpenAPI 和 Micronaut Oracle Cloud。關(guān)于這個版本的更多細(xì)節(jié)可以在 發(fā)布說明 中找到。
JobRunr
在經(jīng)歷了三個里程碑版本之后,JobRunr 6.0(一個在 Java 中執(zhí)行后臺處理任務(wù)的輔助程序)已經(jīng)向 Java 社區(qū) 發(fā)布 了。新的功能和改進(jìn)包括:支持 Spring Boot 3.0;提供的 Job Builers API 基于構(gòu)建器模式來配置 Job 類,可以不使用 @Job 注解;被分配了 Job Labels 的作業(yè)將在儀表盤中可見;允許在一個應(yīng)用程序中使用帶有不同表前綴的多個 JobScheduler 類的實(shí)例;更新了所有可傳遞依賴項;提升了性能和穩(wěn)定性。關(guān)于這個版本的更多細(xì)節(jié)可以在 發(fā)布說明 中找到。
MicroStream
MicroStream提供 了其 Java 原生對象圖持久化層的 8.0 預(yù)覽版。這個 第二個早期訪問版本 的特性包括:遷移到 JDK 11 并繼續(xù)支持 JDK 8;只讀模式,多個進(jìn)程可以訪問同一個存儲;ArrayList、HashMap 和 HashSet 的實(shí)驗性實(shí)現(xiàn),采用了共享機(jī)制;改進(jìn)了與 Spring Boot 和 Quarkus 的集成。
Hibernate
Hibernate ORM 6.2 的 第二個候選版本 根據(jù) Java 社區(qū)對 Hibernate ORM 6.2第一個候選版本 的反饋進(jìn)行了許多錯誤修復(fù)。因此,SQL 抽象語法樹(用于 Hibernate 查詢語言的基于 ANTLR 的解析器)已經(jīng)穩(wěn)定下來,SQL MERGE 命令現(xiàn)在可以處理對可選表的更新。
我們創(chuàng)建了一個高質(zhì)量的技術(shù)交流群,與優(yōu)秀的人在一起,自己也會優(yōu)秀起來,趕緊 點(diǎn)擊加群 ,享受一起成長的快樂。
Apache 軟件基金會
Apache Tomcat 10.1.5 已經(jīng) 發(fā)布,一些顯著的變化包括:修復(fù)了重構(gòu)導(dǎo)致的回歸問題(替換了對 URL 構(gòu)造函數(shù)的使用);使用 HTTP/2 錯誤碼 NO_ERROR,這樣客戶端在重置 HTTP/2 流時不會丟棄響應(yīng);將 系統(tǒng)屬性GET_CLASSLOADER_USE_PRIVILEGED 的默認(rèn)值更改為 true,除非在 Tomcat 中運(yùn)行了 Expression Language 庫。關(guān)于這個版本的更多細(xì)節(jié)可以在 變更日志 中找到。
Apache Groovy 4.0.8 已 發(fā)布,包含了錯誤修復(fù)和增強(qiáng),例如:改進(jìn)了 Groovy 斷言語句的 JaCoCo 行代碼覆蓋率;引入 findAll() 和 findResults() 方法的變體,可接受可選的收集器參數(shù)。關(guān)于這個版本的更多細(xì)節(jié)可以在 變更日志 中找到。
類似地,Apache Groovy 2.5.21 也已 發(fā)布,包含了 Bug 修復(fù)和依賴項 ASM 9.4 的升級。關(guān)于這個版本的更多細(xì)節(jié)可以在 變更日志 中找到。
Camel Quarkus 2.16.0 已 發(fā)布,與 Camel 3.20.1 和 Quarkus 2.16.0.Final 保持一致。它提供了對四種 DSL 的支持:JavaShell、Kotlin、Groovy 和 jOOR。關(guān)于這個版本的更多細(xì)節(jié)可以在 發(fā)布說明 中找到。
JDKMon
由 Azul 首席工程師 Gerrit Grunwald 創(chuàng)建的 JDK 監(jiān)控和更新工具 JDKMon 發(fā)布了 17.0.45 版本,修復(fù)了與下載對話框相關(guān)的問題。
Foojay.io 將參加 FOSDEM 2023 大會
OpenJDK 的朋友,F(xiàn)oojay.io,Java 生態(tài)系統(tǒng)的社區(qū)平臺 宣布 將在 2023 年 2 月 4 日至 5 日(周六至周日)舉行的 FOSDEM 2023 大會上開辟自己的 開發(fā)者交流空間。
FOSDEM 是一個由志愿者組織的為期兩天的活動,旨在促進(jìn)免費(fèi)和開源軟件的采用,它將提供一些渠道和由其他組織和社區(qū)組織的開發(fā)者空間(也就是 devrooms)供開發(fā)者交流。
原文鏈接:https://www.infoq.com/news/2023/01/java-news-roundup-jan02-2023/
相關(guān)閱讀
Java 近期新聞:Spring Cloud 2022.0.0、SourceBuddy、Jarviz 和 Just(https://www.infoq.cn/article/wAHZc2d8AYKScTgeM3Av)
Java 近期新聞:Ideal Graph Visualizer 開源、TomEE MicroProfile 5.0 認(rèn)證 (https://www.infoq.cn/article/vrFf9KauwxZ4bqWr454P)
Spring Batch 5.0 發(fā)布,使用 JDK 17 作為基線版本并支持原生 Java(https://www.infoq.cn/article/5GyCp1rm0IyPIfRoDyjQ)
最近 熬夜給大家準(zhǔn)備了非常全的一套Java一線大廠面試題。全面覆蓋BATJ等一線互聯(lián)網(wǎng)公司的面試題及解答,由BAT一線互聯(lián)網(wǎng)公司大牛帶你深度剖析面試題背后的原理,不僅授你以魚,更授你以漁,為你面試掃除一切障礙。

資源,怎么領(lǐng)取?
掃二維碼,加我微信,備注:面試題
一定要備注:面試題,不要急哦,工作忙完后就會通過!
