2024年11月Java SE Development Kit17(JDK) V17.0.2 官方最新版

发布时间:

  ⑴Java 是一款十分专业的编程工具,主要应用于web网页的开发、Android的开发、客户端的开发等等,对于开发人员来说,Java基本等于了JDK。而在新的版本中,进行了一些功能增强,有需要的小伙伴们快来下载体验吧!

  ⑵? JEP :密封类

  ⑶密封类已添加到 Java 语言中。密封类和接口限制哪些其他类或接口可以扩展或实现它们。

  ⑷密封类由JEP 提出,并在 JDK 中作为预览功能提供。它们由JEP 再次提出并进行了改进,并作为预览功能在 JDK 中提供。现在在 JDK 中,密封类正在最终确定,与 JDK 没有任何变化。

  ⑸? JEP :开关模式匹配(预览

  ⑹使用 switch 表达式和语句的模式匹配以及对模式语言的扩展来增强 Java 编程语言。将模式匹配扩展到 switch 允许针对多个模式测试表达式,每个模式都有特定的操作,以便可以简洁安全地表达复杂的面向数据的查询。

  ⑺? JEP :新的 macOS 渲染管线

  ⑻Swing API 用于渲染的 Java D API 现在可以使用适用于 macOS 的新 Apple Metal 加速渲染 API。

  ⑼当前默认禁用此功能,因此渲染仍使用 OpenGL API,Apple 已弃用这些 API,但仍可用并受支持。

  ⑽要启用 Metal,应用程序应通过设置系统属性来指定其用途:

  ⑾-Dsun.javad.metal=true

  ⑿Metal 或 OpenGL 的使用对应用程序是透明的,因为这是内部实现的差异并且对 Java API 没有影响。金属管道需要 macOS ..x 或更高版本。将忽略在早期版本上设置它的尝试。

  ⒀? 用于访问大图标的新 API

  ⒁javax.swing.filechooser.FileSystemView.getSystemIcon(File, int, intJDK 中提供了一种新方法 ,可以在可能的情况下访问更高质量的图标。完全针对Windows平台实现;但是,其他平台上的结果可能会有所不同,稍后会得到增强。例如,通过使用以下代码:

  ⒂FileSystemView fsv = FileSystemView.getFileSystemView(;

  ⒃Icon icon = fsv.getSystemIcon(new File(“application.exe”, , ;

  ⒄JLabel label = new JLabel(icon;

  ⒅用户可以获得更高质量的“application.exe”文件图标。此图标适用于创建在 HighDPI 环境中可以更好缩放的标签。

  ⒆? DatagramSocket 可以直接用于加入多播组

  ⒇java..DatagramSocket此版本中已更新以添加对加入多播组的支持。现在定义joinGroup和leaveGroup方法加入和离开组播组。java..DatagramSocket已更新的类级 API 文档解释了如何DatagramSocket配置普通的以及如何使用它来加入和离开多播组。

  ⒈此更改意味着DatagramSocketAPI 可用于多播应用程序,而无需使用旧版java..MulticastSocketAPI。该MulticastSocketAPI的工作和以前一样,虽然它的大多数方法已被弃用。

  ⒉? JEP :增强型伪随机数生成器

  ⒊为伪随机数生成器 (PRNG 提供新的接口类型和实现,包括可跳转的 PRNG 和额外的一类可拆分 PRNG 算法 (LXM。

  ⒋? 理想图形可视化器的现代化

  ⒌Ideal Graph Visualizer (IGV 是一种以可视化和交互方式探索 HotSpot VM C 即时 (JIT 编译器中使用的中间表示的工具,已经现代化。增强功能包括:

  ⒍支持在高达 JDK (IGV 底层 Beans 平台支持的最新版本上运行 IGV

  ⒎更快的基于 Maven 的 IGV 构建系统

  ⒏稳定块形成、组移除和节点跟踪

  ⒐默认过滤器中更直观的着色和节点分类

  ⒑具有更自然默认行为的排名快速节点搜索

  ⒒现代化的 IGV与早期 JDK 版本生成的图形部分兼容。它支持图形加载和可视化等基本功能,但可能会影响节点聚类和着色等辅助功能。

  ⒓src/utils/IdealGraphVisualizer/README.md工具源目录中的文件中提供了有关构建和运行 IGV 的详细信息。

  ⒔? 错误消息中的源详细信息

  ⒕当 JavaDoc 报告输入源文件中的问题时,它会显示该问题的源代码行,以及包含^指向该行位置的插入符号 ( 的行,其方式类似于编译器 ( javac 诊断消息。

  ⒖此外,日志和其他“信息”消息现在被写入标准错误流,让标准输出流用于命令行选项特别请求的输出,例如命令行帮助。

  ⒗工具/javadoc(工具

  ⒘? 新的“新 API”页面和改进的“弃用”页面

  ⒙JavaDoc 现在可以生成一个页面,总结最近 API 的变化。要包含的最新版本列表是使用--since命令行选项指定的。这些值用于查找since要包含在新页面上的具有匹配标签的声明。该--since-label命令行选项提供了“新API”页面的标题文本使用。

  ⒚在汇总弃用项目的页面上,您可以查看按弃用项目所在版本分组的项目。

  ⒛? JEP :外部函数和内存 API(孵化器

  ①介绍一个 API,Java 程序可以通过该 API 与 Java 运行时之外的代码和数据进行互操作。通过有效调用外部函数(即 JVM 之外的代码,以及安全地访问外部内存(即不由 JVM 管理的内存,API 使 Java 程序能够调用本地库和处理本地数据,而没有JNI。

  ②? 控制台字符集 API

  ③java.io.Console已更新以定义返回Charset控制台的新方法。返回的字符集可能与从Charset.defaultCharset(方法返回的字符集不同。例如,它返回IBMwhileCharset.defaultCharset(返回windows-Windows (en-US。有关更多详细信息,请参阅CSR。

  ④? 用于反序列化的 JDK 飞行记录器事件

  ⑤现在可以使用 JDK Flight Recorder (JFR 监视对象的反序列化。当启用 JFR 并且 JFR 配置包括反序列化事件时,每当正在运行的程序尝试反序列化对象时,JFR 都会发出一个事件。反序列化事件名为jfr.Deserialization,默认情况下是禁用的。反序列化事件包含序列化过滤器机制使用的信息;请参阅ObjectInputFilter规范。此外,如果启用了过滤器,则 JFR 事件指示过滤器是接受还是拒绝对象的反序列化。有关如何使用 JFR 反序列化事件的更多信息,请参阅文章监控反序列化以提高应用程序安全性。 有关使用和配置 JFR 的参考信息,请参阅JDK 任务控制文档的JFR 运行时指南和JFR 命令参考部分。