Java 23 提供 Markdown 文档、ZGC 分代模式,弃用 sun.misc.Unsafe

Java 23 发布概述

Oracle 发布了 Java 编程语言和虚拟机的第 23 版(JDK 23)。这是自 JDK 21 以来的第二个非长期支持(LTS)版本,包含了 12 个 JEP(Java Enhancement Proposal)。其中三个是最终功能,未经过预览或孵化过程。

JDK 23 的主要 JEP

  1. JEP 455: 在模式、instanceofswitch 中使用原始类型(预览)。
  2. JEP 466: 类文件 API(第二次预览)。
  3. JEP 467: Markdown 文档注释。
  4. JEP 469: 向量 API(第八次孵化)。
  5. JEP 471: 弃用 sun.misc.Unsafe 中的内存访问方法以备移除。
  6. JEP 473: 流收集器(第二次预览)。
  7. JEP 474: ZGC:默认启用分代模式。
  8. JEP 476: 模块导入声明(预览)。
  9. JEP 477: 隐式声明类和实例主方法(第三次预览)。
  10. JEP 480: 结构化并发(第三次预览)。
  11. JEP 481: 作用域值(第三次预览)。
  12. 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 ChanderJim Grisanzio:提供了 Java 社区报告。
  • Alina YurenkoFabio 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 月初进行功能冻结。

阅读 35
0 条评论