导读:Java 24 的首批功能发布,包括类文件 API、G1 垃圾收集器的改进以及对 Java 本机接口不安全使用的警告等。
Java 开发工具包 (JDK) 23 已经于 9 月 17 日发布, JDK 24的开发工作也已经开始。
目前Oracle 已为该版本提出了三项功能:警告,以便Java开发人员为未来使用JNI(Java 本机接口)的限制做好准备,以及为 G1 垃圾收集器提供后期屏障扩展。
还有许多其他功能(包括 JDK 23 中已预览的许多功能)也将纳入其中。
https://openjdk.org/projects/jdk/24/
JDK 24 将于 2025 年 3 月 18 日到期,它已被指定为非长期支持 (LTS) 版本。
与上一版本发布的 JDK 23 一样,JDK 24 只会获得Oracle六个月的高级支持。
第一个针对 JDK 24 的功能,正式名称为“准备限制使用 JNI ”,要求发出有关使用 JNI 的警告,并调整JDK 22中的外部函数和内存 (FFM) API ,要以一致的方式发出警告。
这些警告旨在为使用未来版本做准备,通过统一限制 JNI 和 FFM API,默认确保完整性。该计划的目标包括将 JNI 保留为与本机代码互操作的标准方式,为默认不允许与本机代码互操作的未来版本准备 Java 生态,并协调 JNI 和 FFM API 的使用,以便库维护者可以从一个迁移到另一个,而无需开发人员更改命令行选项。
第二个功能是G1 垃圾收集器的后期屏障扩展,旨在简化 G1 屏障的实现。G1 垃圾收集器的屏障,通过将其扩展从 C2 编译管道的早期移到后期来记录有关应用程序内存访问的信息。
目标包括减少使用 G1 收集器时 C2 编译的执行时间,使对 C2 缺乏深入了解的 HotSpot 开发人员能够理解 G1 屏障,并确保 C2 保留有关内存访问、安全点和屏障的相对顺序的不变量。
第四个功能是保持 C2 生成的 JIT(即时)编译代码在速度和大小方面的质量。
第三个特性是 类文件 API,之前在 JDK 22 和 JDK 23 中预览过,将在 JDK 24 中完成,但会略有改动。此 API 提供了一个用于解析、生成和转换 Java 类文件的标准 API。其目的是提供一个用于处理类文件的 API,该 API 跟踪 Java 虚拟机规范定义的类文件格式。
第二个目标是使 JDK 组件能够迁移到标准 API,并最终删除 JDK 内部的第三方ASM 库副本。 自第二个预览版以来的更改 包括重命名枚举值、删除某些字段、添加方法和方法重载、重命名方法以及删除被认为不必要的接口和方法。
针对 JDK 24 的其他特性将在未来几个月内确定。潜在的 Java 24 特性包括 JDK 23 中预览的特性的进一步预览版或最终版本。
这些包括流收集器,用于增强用于自定义中间操作的流 API;模块导入声明,用于简洁地导入模块导出的所有包并简化模块库的重用;结构化并发,用于简化并发编程;范围值,用于共享不可变数据;以及灵活的构造函数主体,让开发人员可以更自由地表达构造函数的行为。
JDK 23 中的另一个预览特性和 JDK 24 的竞争者是模式中的原始类型、instanceof 和 switch,旨在通过允许所有模式上下文中的原始类型模式来增强模式匹配,并扩展instanceof和switch使用所有原始类型。JDK 24 的另一个可能特性是向量 API,现在处于 JDK 23 的第八个孵化阶段。向量 API 旨在表达向量计算,这些计算在运行时可靠地表达为受支持的 CPU 架构上的最佳向量指令。提前类加载是一项旨在加速 Java 启动的功能,而字符串模板是一项在 JDK 21 和JDK 22中预览过但从 JDK 23 中删除的功能,也可能针对 JDK 24。
最新的 LTS 版本JDK 21 是在 2023 年 9 月发布,预计将获得 Oracle 至少五年的 Premier 支持。下一个 LTS 版本 JDK 25 将于 2025 年 9 月发布。LTS 版本确实主导了 Java 的采用率,这意味着在用户等待 JDK 25 时,JDK 23 和 JDK 24 的采用率可能会不高。
本文为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。