首页 > 运维 > linux运维 > 正文

JDK/Java 17 马上来袭,看看带来哪些新特性?

看不見的法師
发布: 2025-07-14 09:56:23
原创
1306人浏览过

jdk/java 16 已于今年 3 月正式发布,成为一个短期维护版本,仅提供 6 个月的技术支持。紧随其后,jdk/java 17 预计将于今年 9 月 14 日推出,作为一个长期支持(lts)版本,oracle 将提供数年的扩展支持。

目前,JDK 17 已进入第二个也是最后一个候选版本阶段(RC),最新版本为 Build 35。

JDK/Java 17 马上来袭,看看带来哪些新特性?根据 InfoWorld 的报道,OpenJDK JDK 17 引入了一些新功能,包括:

通过调用 JVM-wide filter factory 为每个序列化操作选择过滤器,应用程序可以配置 context-specific 和 dynamically selected 的反序列化过滤器。恢复 always-strict 浮点语义,确保浮点运算的一致性,而不再同时具有严格的浮点语义 (strictfp) 和默认浮点语义,恢复到 Java Standard Edition 1.2 之前的原始浮点语义。计划弃用 Security Manager,为未来版本的移除做准备。Security Manager 自 Java 1.0 起一直是保护客户端 Java 代码的主要手段,较少用于服务器端代码保护。该提案旨在评估是否需要新的 API 或机制来解决使用 Security Manager 的特定用例,如阻止 System::exit。计划与旧 Applet API 一起弃用 Security Manager,Applet API 也将在 JDK 17 中被弃用。switch 模式匹配预览版扩展了 Java 中的模式语言,允许 switch 表达式和语句针对多个模式进行测试,每个模式有特定的操作。这使得复杂的面向数据的查询能够简洁而安全地表达。该功能的目标包括:通过在案例标签中使用模式,扩展 switch 表达式和语句的表现力和应用,在必要时放宽 switch 的历史 null-hostility,并引入两种模式:guarded patterns 和 parenthesized patterns。JDK 16 中,instanceof 运算符已扩展为采用类型模式并执行模式匹配。提议的适度扩展简化了熟悉的 instanceof-and-cast 习语。JDK 内部的强封装,除了 sun.misc.Unsafe 等关键内部 API 外,用户将无法通过单个命令行选项放宽对内部元素的强封装,这在 JDK 9 到 JDK 16 中是可行的。该计划旨在提高 JDK 的安全性和可维护性,鼓励开发人员从内部元素迁移到标准 API。删除远程方法调用 (RMI) 激活机制,同时保留 RMI 的其他部分。RMI 激活机制已过时和废弃,在 JDK 15 中不推荐使用。引入外部函数和 memory API 的孵化器阶段,允许 Java 程序与 Java 运行时之外的代码和数据进行互操作。API 的目标包括易用性、性能、通用性和安全性。平台无关的矢量 API 作为孵化 API 集成到 JDK 16 中,将在 JDK 17 中再次孵化,提供一种机制来表达矢量计算,这些计算在运行时可靠地编译为支持的 CPU 架构上的最佳矢量指令,性能优于等效的标量计算。在 JDK 17 中,矢量 API 针对性能和实现进行了增强,包括在字节向量与布尔数组之间的转换增强。密封类和接口限制哪些其他类或接口可以扩展或实现它们。该提案的目标包括允许类或接口的作者控制哪些代码负责实现它,提供比访问修饰符更具声明性的方式来限制超类的使用,并支持模式匹配的未来方向。删除实验性 AOT 和 JIT 编译器,这些编译器几乎没有使用,但需要大量维护工作。该计划要求维护 Java 级别的 JVM 编译器接口,以便开发人员可以继续使用外部构建的编译器版本进行 JIT 编译。将 JDK 移植到 MacOS/AArch64,以响应 Apple 将其 Macintosh 计算机从 x64 转换到 AArch64 的计划。针对 MacOS/AArch64 的更改可能破坏现有的 Linux/AArch64、Windows/AArch64 和 MacOS/x64 port,但这种风险可以通过预集成测试来降低。弃用 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 等 LTS 版本每三年发布一次,上一个 LTS 版本 JDK 11 于 2018 年 9 月发布。

来福FM
来福FM

来福 - 你的私人AI电台

来福FM 243
查看详情 来福FM

更多详情请访问:https://www.php.cn/link/4f31c144c6398a39257dcc2f2684c732

立即学习Java免费学习笔记(深入)”;

以上就是JDK/Java 17 马上来袭,看看带来哪些新特性?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号