JDK 17:Java 17有何新看點?
譯文
【51CTO.com快譯】雖然要到9月才發布,但Java 17已經開始成形,正考慮為標準Java的升級版添加四項提議的新功能。截至3月30日最近添加的功能包括:MacOS/AArch64移植版和棄用Applet API。這些遵循2月針對新的MacOS渲染管道和增強版偽隨機數生成器的提議。
Java開發工具包(JDK)17將是長期支持(LTS)版本,預計Oracle會提供數年的擴展支持。
OpenJDK JDK 17的部分功能包括如下:
- 將JDK移植到MacOS/AArch64,以響應蘋果將Macintosh計算機從x64改為AArch64的計劃。已經有面向Linux的Java AArch64移植版,正在開發面向Windows的移植版。Java構建者希望通過使用條件編譯來重用來自這些移植版的現有AArch64代碼,就像JDK移植版的常規做法一樣,以適應低級約定方面的差異,比如應用程序二進制接口和保留的處理器寄存器集。針對MacOS/AArch64的更改可能會破壞現有的Linux/AArch64移植版、Windows/AArch64移植版和MacOS/x64移植版,但是可以通過預集成測試來降低這種風險。
- Applet API由棄用變為刪除。該API實際上無關緊要,因為所有Web瀏覽器供應商已刪除了對Java瀏覽器插件的支持,或已宣布計劃這么做。Applet API之前于2017年9月在Java 9中被棄用,但并未被刪除。
- 新的MacOS渲染管道,使用Apple Metal API以替代使用被棄用的OpenGL API的現有管道。該提議旨在為使用MacOS Metal框架的Java 2D API提供一條功能全面的渲染管道,萬一蘋果從未來版本的MacOS中刪除OpenGL API,可以準備就緒。該管道旨在功能上與現有的OpenGL管道相當,在某些應用程序和基準測試中的性能一樣好或更好。將創建適合當前Java 2D模型的干凈架構。管道將與OpenGL管道共存,直到過時。提案的目的并不是添加任何新的Java或JDK API。
- 增強版偽隨機數生成器,將為偽隨機數生成器(PRNG)提供新的接口類型和實現,包括可跳轉的PRNG和可拆分PRNG算法的額外類(LXM)。新的接口RandomGenerator將為所有新舊PRNG提供統一的API。將提供四個專門的RandomGenerator接口。Java中偽隨機數生成這方面有多個方面需要改進,激勵這項計劃是它們關注的重心。這項工作不需要提供其他許多PRNG算法的實現,但是添加了三種常見算法,這些算法已廣泛部署在其他編程語言環境中。這項計劃的目標包括如下:
- 更容易在應用程序中互換使用各種PRNG算法。
- 改進了對基于流的編程的支持,并提供PRNG對象流。
- 消除現有PRNG類中的代碼重復。
- 保留類java.util.Random的現有行為。
在今后幾個月,可能會為JDK 17提議更多的功能。可能包括外來鏈接程序API、向量API和外來存儲器訪問API,所有這些功能目前都在3月發布的JDK 16版本中的孵化器階段中。JDK 16第二個預覽版中的密封類可能會在JDK 17中正式提供。模式匹配也可能是JDK 17提案的重點。
JDK 17的正式發布日期定為9月14日。生產版本發布之前,會有6月和7月的精簡階段以及8月的發行候選版本。可以在jdk.java.net找到JDK 17的搶先體驗開源版本。
LTS版本(比如JDK 17)每三年發布一次。上一個LTS版本JDK 11已于2018年9月發布。Java的新版本每六個月發布一次。標準Java的當前版本是JDK 15。
原文標題:JDK 17: What’s in store for Java 17,作者:Paul Krill
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】