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