【.com快译】虽然要到9月份才会发布,但Java17已经初具规模,有四项提议的新特性正在考虑升级到标准Java。截至3月30日的最新添加包括:MacOS/AArch64端口和已弃用的AppletAPI。这些遵循二月提出的新macOS渲染管道和增强的伪随机数生成器的提议。JavaDevelopmentKit(JDK)17将是一个长期支持(LTS)版本,预计Oracle将提供多年的扩展支持。OpenJDKJDK17的一些特性包括:将JDK移植到MacOS/AArch64以响应Apple将Macintosh计算机从x64更改为AArch64的计划。已经有一个用于Linux的JavaAArch64端口,一个用于Windows的端口正在开发中。Java构建者希望通过使用条件编译重用这些端口中的现有AArch64代码,这是JDK端口中的常见做法,以适应低级约定的差异,例如应用程序二进制接口和保留的处理器寄存器集。对macOS/AArch64的更改可能会破坏现有的Linux/AArch64端口、Windows/AArch64端口和MacOS/x64端口,但可以通过预集成测试来降低这种风险。AppletAPI从弃用更改为删除。API实际上是无关紧要的,因为所有Web浏览器供应商都已取消对Java浏览器插件的支持,或者已经宣布了这样做的计划。AppletAPI之前已于2017年9月在Java9中弃用,但并未被删除。新的macOS渲染管道,使用AppleMetalAPI而不是使用已弃用的OpenGLAPI的现有管道。该提案旨在使用MacOSMetal框架为Java2DAPI提供功能齐全的渲染管道,以防苹果从未来版本的MacOS中删除OpenGLAPI。该管线旨在在功能上等同于现有的OpenGL管线,在某些应用程序和基准测试中表现相同或更好。将创建适合当前Java2D模型的干净架构。该管线将与OpenGL管线共存直至过时。添加任何新的Java或JDKAPI并不是提议的目的。增强的伪随机数生成器将为伪随机数生成器(PRNG)提供新的接口类型和实现,包括可跳转的PRNG和用于可拆分PRNG算法的额外类(LXM)。新接口RandomGenerator将为所有新旧PRNG提供统一的API。将提供四个专门的RandomGenerator接口。Java中的伪随机数生成有几个方面需要改进,而推动这个项目是他们的重点。这项工作不需要提供许多其他PRNG算法的实现,而是添加了三种广泛部署在其他编程语言环境中的常用算法。该计划的目标包括以下内容:使在应用程序中交替使用各种PRNG算法变得更加容易。改进了对基于流的编程的支持并提供了PRNG对象流。消除现有PRNG类中的代码重复。保留类java.util.Random的现有行为。在接下来的几个月中,可能会为JDK17提出更多功能。可能包括外部链接器API、向量API和外部内存访问API,所有这些目前都在3月份发布的JDK16版本中处于孵化器阶段。JDK16第二次预览中的密封类可能会在JDK17中正式可用。模式匹配也可能是JDK17提案的重点。JDK17的正式发布日期定在9月14日。在产品发布之前,将在6月和7月进行简化阶段,并在8月进行发布候选。可以在jdk.java.net上找到JDK17的早期访问开源版本。LTS版本(例如JDK17)每三年发布一次。最后一个LTS版本JDK11于2018年9月发布。Java的新版本每六个月发布一次。标准Java的当前版本是JDK15。原标题:JDK17:Java17的内容,作者:PaulKrill
