Oracle 发布 Java 17

Oracle 于 17 日发布了 Java 17。

Java 17 包括 14 个 JDK 改进建议 (JEP) 和各种性能、稳定性和安全更新。

Java 17 是最新的 Java 长期支持 (LTS) 版本,每六个月发布一次。它建立在 Oracle 工程师与 OpenJDK 社区成员和全球 Java 开发人员社区(包括 JCP)之间的广泛合作之上。自三年前 JDK 11 LTS 发布以来,已经实现了 70 多个 JEP。

爪哇标志

Oracle JDK 17 和即将推出的 JDK 可以免费使用,直到下一个 LTS 版本发布。自 2017 年以来,Oracle 一直在开源通用公共许可证 (GPL) 下发布 Oracle OpenJDK 版本。

Oracle 已与 Java 开发人员社区和 JCP 合作改进 LTS 计划,以便为迁移到 Java LTS 新版本的企业提供更大的弹性。Oracle 宣布下一个 LTS 版本 Java 21 将于 2023 年 9 月发布。这将现有的三年分发周期缩短为两年。

拥有当前 Oracle LTS 和 Java SE 订阅的企业客户可以按照自己的计划迁移到 Java 17。Oracle 将至少在 2029 年 9 月之前为 Java 17 客户提供安全、性能和错误修复更新。

JDK 17 包括新的语言增强、库更新、对新 Apple 计算机的支持、旧功能的删除和弃用,以及确保当前编写的代码能够在 JDK 的下一版本中运行的工作,并从 Java 社区寻求意见。还提供功能预览和 API 孵化

JEP 409,密封类和接口,限制其他类或接口的扩展和实现。这是 Project Amber 引入的多项改进之一,旨在推进 Java 语言以提高开发人员的生产力。

JEP 306 总是引入严格的浮点语法恢复。默认情况下,Java 编程语言和 Java 虚拟机只有严格的浮点语义。为了适应硬件架构的限制,默认情况下从 Java 1.2 开始采用了这种严格语法的例外,但在 JEP 306 中被删除,因为这些例外不再有用或没有必要。

JEP 356 的采用为伪随机数生成器提供了新的接口类型和实现。这些更改提高了各个伪随机数生成器之间的互操作性,并且无需编写自己的代码来实现满足您要求的算法即可轻松实现。

新的 macOS 渲染管道 (JEP 382) 使用 Apple Metal API 为 macOS 实现了 Java 2D 管道。新管道减少了 JDK 对已弃用的 Apple OpenGL API 的依赖。

MacOS AArch64 移植 (JEP 391) 将 JDK 移植到 macOS/AArch64 平台,使得在新的基于 Arm 64 的 Apple 硅计算机上本地运行 Java 应用程序成为可能。

Java Applet API 已停止或计划被所有 Web 浏览器供应商删除。Applet API 于 2017 年 9 月在 Java 9 中被弃用,但当时并不打算将其删除。

远程函数调用 (RMI) 激活已被删除。其他 RMI 相关事项保留。删除了 AOT 和 JIT 编译器。已停止支持原定删除的安全管理器。

内部组件的强解封装(可以通过从 JDK 9 到 JDK 16 的单个命令行输入)被阻止。您仍然可以通过现有的内部 API 访问它,但您必须指定要为其解封强封装的包列表,作为命令行参数或作为 JAR 清单文件中的属性。这些更改提高了应用程序的安全性并减少了对使用 JDK 内部实现的非标准细节的依赖。

还包括预览和孵化下一 JDK 版本的功能。测试分配给各个任务的不同模式的 switch 语法处于预览状态。这有助于编写用于复杂数据的简洁且安全的查询。JDK 14 和 JDK 15 中引入的孵化 API 已得到增强,可以在 Java 运行时之外与 Java 程序互操作代码和数据。该 API 有效地调用外部函数(即 JVM 之外的代码)并提供对外部存储器的安全访问。这可以防止在 Java 程序调用本机库或处理本机数据时可能出现的 Java 本机接口 (JNI) 的不稳定性和复杂性。该 API 由 Project Panama 开发,以改进 Java 与其他语言编写的代码之间的交互。Vector API 包含在二次孵化中。为了优化支持该功能的CPU架构的向量运算指令,支持可以在运行时稳定编译的向量运算语法。与相同的标量操作相比,这可以实现卓越的性能。

Oracle Java Platforms Group 开发副总裁 George Saab 表示:“Oracle 听取了许多开发人员在过去三年中一直在使用的最新功能,确认六个月的发布周期已成功融入开发人员生态系统“当今 Java 开发人员面临的最大挑战之一是公司只需要使用最新的 LTS 版本。”

他补充说:“由于LTS版本的发布周期改为两年,优先考虑安全性的公司的开发人员可以根据自己的喜好和需求有更多的选择。”

Java 是当今最成功的开发平台之一。Oracle 推出了 Oracle Java 管理服务,以加快 Java 在云环境中的采用。新发布的 OCI 专用服务支持本地和任何云环境中的企业 Java 运行时和应用程序管理。

Java 管理服务为客户环境中安装的所有 Java 版本的部署提供企业级可见性,包括在开发和生产阶段运行的 Java 版本。通过这种方式,可以检查正在运行的 Java 应用程序和所有已安装 Java 版本的最新安全补丁之间是否存在异常情况。

相关文章