Java 21,下一个长期支持版本,带来虚拟线程、记录模式和模式匹配

Oracle 发布 Java 21

Oracle 发布了 Java 编程语言和虚拟机的第 21 个版本(JDK 21),这是自 2021 年 JDK 17 以来的第一个长期支持(LTS)版本。JDK 21 包含了 15 个 JEP(JDK Enhancement Proposals),涵盖了语言、库、JVM 和工具等多个方面的改进。

主要新特性

JDK 21 的主要新特性包括:

  1. JEP 430: 字符串模板(预览):引入字符串模板,简化字符串拼接和格式化。
  2. JEP 431: 序列化集合:提供对集合的顺序访问支持。
  3. JEP 439: 分代 ZGC:优化 ZGC 垃圾回收器,支持分代回收。
  4. JEP 440: 记录模式:增强记录类型的数据解构能力。
  5. JEP 441: Switch 模式匹配:在 switch 表达式中引入模式匹配。
  6. JEP 442: 外部函数与内存 API(第三次预览):继续改进与本地代码的互操作性。
  7. JEP 443: 未命名模式与变量(预览):简化模式匹配和变量声明。
  8. JEP 444: 虚拟线程:正式引入虚拟线程,优化高并发应用的性能。
  9. JEP 445: 未命名类与实例主方法(预览):简化 Java 初学者的入门体验。
  10. JEP 446: 作用域值(预览):引入作用域值,优化线程局部变量的使用。
  11. JEP 448: 向量 API(第六次孵化):继续优化数值计算性能。
  12. JEP 449: 弃用 Windows 32 位 x86 端口:计划移除对 Windows 32 位 x86 的支持。
  13. JEP 451: 准备禁止动态加载代理:增强安全性,限制动态代理的加载。
  14. JEP 452: 密钥封装机制 API:引入新的加密 API。
  15. JEP 453: 结构化并发(预览):简化并发编程模型。

重点特性详解

虚拟线程(JEP 444)

虚拟线程是 JDK 21 中最引人注目的特性之一,正式从预览阶段进入稳定阶段。虚拟线程是轻量级线程,能够显著提升高并发应用的性能和可扩展性,特别是在 I/O 密集型场景中。JDK 21 中的虚拟线程完全支持线程局部变量,消除了之前版本中的一些限制。

记录模式(JEP 440)

记录模式允许开发者解构记录类型的值,与类型模式结合使用,提供了一种强大的数据导航和处理方式。JDK 21 中移除了对增强 for 语句头部的记录模式支持。

Switch 模式匹配(JEP 441)

Switch 模式匹配在 JDK 21 中正式成为稳定特性,增强了 switch 表达式和语句的功能,使其能够更灵活地处理复杂的数据结构。

未命名类与实例主方法(JEP 445)

该特性旨在简化 Java 初学者的入门体验,允许开发者编写更简单的程序,而无需理解大型程序所需的语言特性。它是对 2022 年提出的“Paving the on-ramp”提案的进一步推进。

JDK 21 发布活动

JDK 21 的发布活动于 2023 年 9 月 19 日以线上形式举行,活动包括多个讨论 JDK 21 新特性的环节,并宣布了以下新内容:

  • Java Playground:基于 JShell 的 GUI 工具,用于编写和执行 Java 代码。
  • dev.java 网站:Java 社区现在可以为该网站提供内容。
  • Java 开发者关系 GitHub 仓库:新的开源项目仓库。
  • JDK 11 支持延长:JDK 11 将至少支持到 2032 年。

JDK 22 展望

目前尚无明确的 JEP 被确定为 JDK 22 的一部分,但根据已提交的 JEP 草案和候选提案,预计以下特性可能会出现在 JDK 22 中:

  • JEP 454: 外部函数与内存 API:计划在 JDK 22 中正式发布。
  • JEP Draft 8315945: 向量 API(第七次孵化):继续优化数值计算性能。
  • JEP Draft 8277163: 值对象(预览):引入无身份的值类。
  • JEP Draft 8311828: 未命名模式与变量:计划在 JDK 22 中正式发布。

JDK 22 的正式发布日期暂定为 2024 年 3 月 19 日。

总结

JDK 21 作为 Java 的最新 LTS 版本,引入了大量新特性,特别是在并发编程、模式匹配和初学者友好性方面。虚拟线程、记录模式和 Switch 模式匹配是其中最突出的改进。JDK 21 的发布标志着 Java 平台的进一步发展,预计将在企业级应用中广泛采用。

阅读 121
0 条评论