0

0

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

看不見的法師

看不見的法師

发布时间:2025-07-14 09:56:23

|

1332人浏览过

|

来源于php中文网

原创

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 月发布。

Img.Upscaler
Img.Upscaler

免费的AI图片放大工具

下载

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

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

252

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1029

2024.03.01

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1561

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

241

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

128

2025.10.17

switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

567

2023.09.21

Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

440

2024.03.13

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1825

2023.10.19

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

1

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 4.2万人学习

Java 教程
Java 教程

共578课时 | 77.8万人学习

oracle知识库
oracle知识库

共0课时 | 0.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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