Java Development Kit (JDK) 23 將于2024年9月17日發布,帶來了11項新特性和改進,包括模塊導入聲明、流收集器、結構化並發和靈活的構造函數體的預覽。
![](http://image.uc.cn/s/wemedia/s/upload/2024/3573e44b41b9cdeb25af37c3569e10f3.png)
Java 23
模塊導入聲明JDK 23 引入了模塊導入聲明,簡化了模塊化庫的重用。開發者可以更簡潔地導入整個模塊,而無需逐一聲明每個包。這一特性有助于初學者更容易使用第三方庫和基本的Java類。
流收集器流收集器在JDK 22中首次預覽,此次在JDK 23中進行了第二次預覽。該功能增強了流API,支持自定義中間操作,使得流管道在處理數據時更加靈活和可表達。
結構化並發結構化並發在JDK 23中進行第三次預覽,旨在簡化並發編程。通過將不同線程中的相關任務作爲單一工作單元來處理,結構化並發可以改進錯誤處理和取消操作,提高代碼的可靠性和可觀察性。
靈活的構造函數體靈活的構造函數體在JDK 23中進行第二次預覽。這個特性允許在顯式調用構造函數之前初始化字段,使得構造函數的邏輯表達更爲自然,同時保證構造函數在類實例化時按自上而下的順序運行。
Markdown 文檔注釋JDK 23 引入了 Markdown 文檔注釋,允許JavaDoc文檔注釋使用Markdown語法。此改進使得API文檔注釋的編寫和閱讀更加簡潔易懂,並擴展了編譯器樹API,以便其他工具可以處理Markdown內容。
Z 垃圾收集器(ZGC)JDK 23 將 Z 垃圾收集器的默認模式切換爲分代模式。分代ZGC通過更頻繁地收集年輕對象,提升了Java應用程序的性能。非分代模式將被棄用,以便未來專注于分代ZGC的發展。
向量API向量API在JDK 23中繼續孵化,目標是提供一個清晰簡潔的API,在運行時可靠地編譯爲最佳向量指令。向量API旨在支持x64和AArch64架構,並與Valhalla項目保持一致。
類文件API類文件API旨在提供一個跟蹤Java虛擬機規範中定義的類文件格式的API,並最終移除JDK內部使用的ASM庫的副本。此API增加了對類簽名模型的改進,使其能夠更准確地建模超類和超接口的泛型簽名。
原始類型模式、instanceof和switch這一特性增強了模式匹配,允許在所有模式上下文中使用原始類型模式,並擴展instanceof和switch以處理所有原始類型。目標是提供易于使用的結構,消除由于不安全的類型轉換而丟失信息的風險。
其他預覽特性此外,JDK 23 還包括一些在 JDK 22 中預覽的特性,如:
在 super(...) 前聲明語句:允許開發者在構造函數中表達更自由的行爲。字符串模板:簡化了包含運行時計算值的字符串表達。作用域值:使得在跨線程之間共享不可變數據成爲可能。派生記錄創建和熱代碼堆提案:可能進一步減少應用程序的執行時間。未來展望Oracle 還透露了2024年Java的改進計劃,涉及OpenJDK的多個項目,如Amber、Babylon和Valhalla,這些項目旨在提升Java的生産力和性能。Amber項目專注于開發較小的、提高生産力的特性;Babylon項目則擴展Java以支持如GPU等外部編程模型;Valhalla項目則旨在通過值對象增強Java對象模型,消除長期存在的性能瓶頸。
結語JDK 23 的新特性和改進反映了Java社區對簡化開發、提高性能和增強可維護性的持續追求。從模塊導入聲明到結構化並發,再到更靈活的構造函數體和更強大的流API,Java開發者將能夠利用這些工具和特性來構建更高效、更可靠的應用程序。未來,隨著Java的不斷演進,我們可以期待更多創新和改進,使Java繼續保持其在現代編程語言中的領先地位。
還在用java8