JDK 17:Java 17有何新看点?

jojo
发布于 2021-4-7 10:33
浏览
0收藏

虽然要到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。

分类
标签
收藏
回复
举报
回复
    相关推荐