Java 23 发布概述
Oracle 发布了 Java 编程语言和虚拟机的第 23 版(JDK 23)。这是自 JDK 21 以来的第二个非长期支持(LTS)版本,包含了 12 个 JEP(Java Enhancement Proposal)。其中三个是最终功能,未经过预览或孵化过程。
JDK 23 的主要 JEP
- JEP 455: 在模式、
instanceof
和switch
中使用原始类型(预览)。 - JEP 466: 类文件 API(第二次预览)。
- JEP 467: Markdown 文档注释。
- JEP 469: 向量 API(第八次孵化)。
- JEP 471: 弃用
sun.misc.Unsafe
中的内存访问方法以备移除。 - JEP 473: 流收集器(第二次预览)。
- JEP 474: ZGC:默认启用分代模式。
- JEP 476: 模块导入声明(预览)。
- JEP 477: 隐式声明类和实例主方法(第三次预览)。
- JEP 480: 结构化并发(第三次预览)。
- JEP 481: 作用域值(第三次预览)。
- JEP 482: 灵活的构造函数体(第二次预览)。
主要功能详解
Markdown 文档注释
JEP 467 允许使用 Markdown 编写 JavaDoc 文档注释,替代 HTML 和 JavaDoc @
标签,旨在提供更易读、易写的文档。
ZGC:默认启用分代模式
JEP 474 将 ZGC 从非分代模式切换为默认启用分代模式,非分代模式将被弃用并在未来版本中移除,以减少维护成本,专注于 JEP 439(分代 ZGC)。
弃用 sun.misc.Unsafe
中的内存访问方法
JEP 471 弃用 sun.misc.Unsafe
类中的内存访问方法,这些方法已被 JDK 9 的 JEP 193(变量句柄)和 JDK 22 的 JEP 454(外部函数与内存 API)取代。
流收集器(第二次预览)
JEP 473 提供了流收集器的第二次预览,旨在增强 Stream API,支持自定义中间操作,允许数据转换。
类文件 API(第二次预览)
JEP 466 提供了类文件 API 的第二次预览,旨在改进 Java 类文件的解析和生成过程,计划替代 ASM 框架。
JDK 23 发布活动
JDK 23 发布活动于 2024 年 9 月 17 日举行,讨论了 JDK 23 的新功能、Java 2024 年推广计划以及未来工作。特别嘉宾包括:
- Gavin Bierman:讨论了 Project Amber 和相关 JEP。
- Ron Pressler:介绍了 JEP 草案 8305968(默认完整性),限制不安全 API 的使用。
- Maurizio Cimadamore:讨论了外部函数与内存 API 的改进。
- Jonathan Gibbons:介绍了 Markdown 文档注释的动机和使用方法。
- Stefan Karlson:讨论了 ZGC 分代模式的优点。
- Denys Makogon:更新了 Java Playground。
- Heather Stephens:强调了 Java 在教育中的重要性。
- Sharat Chander 和 Jim Grisanzio:提供了 Java 社区报告。
- Alina Yurenko 和 Fabio Niephaus:展示了 GraalVM for JDK 23 的新功能。
- Brian Goetz:讨论了类文件 API 的改进。
- John Rose:介绍了 Project Leyden 的更新。
JDK 24 展望
JDK 24 预计于 2025 年 3 月发布,目前仅一个 JEP 被定位为 JDK 24 的目标:
- JEP 472:限制 JNI 的使用,与外部函数与内存 API 配合使用。
其他可能的 JEP 包括:
- JEP 484:类文件 API(最终版)。
- JEP 草案 8338456:作用域值(第四次预览)。
- JEP 草案 8300911:PEM API(预览)。
- JEP 草案 8291976:在 HttpClient 中支持 HTTP/3。
JDK 24 的正式发布日期将由 Mark Reinhold 提出,预计在 2024 年 12 月初进行功能冻结。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。