质量外展预告 - 弃用 sun.misc.Unsafe 中的内存访问方法,以便在未来版本中移除

OpenJDK 质量小组正在推广使用 OpenJDK 构建测试 FOSS 项目,以此作为提高版本整体质量的一种方式。此预告是发送给相关项目的定期通信的一部分。要详细了解该计划以及如何加入,请在此处查看。

弃用 sun.misc.Unsafe 中的内存访问方法,以便在未来版本中移除

致力于加强Java 平台的完整性的工作仍在继续!这项长期而重要的举措的下一阶段很可能会针对用于访问内存的 sun.misc.Unsafe API。仅这些方法就占 sun.misc.Unsafe 方法中的 87 个方法中的 79 个!

JEP 草案概述了弃用 sun.misc.Unsafe 内存访问方法进行移除的计划、原因和标准替代方案。正如草案计划所建议的那样,第一步将是弃用所有内存访问方法(堆上、堆外和双峰)进行移除。这将导致编译时弃用警告,针对引用这些方法的代码,提醒库开发人员即将移除这些方法。此外,新的命令行选项将允许用户在使用这些方法时收到运行时警告。此命令行将帮助用户评估其代码库是否使用这些不安全的 API 来访问内存。应当提到,JFR 和jdeprscan等其他工具也可用于检测这些已弃用的 API 的使用情况。

行动号召

从 JDK 22 开始,永久外部函数和内存 API提供了一种访问堆外 API 的标准且安全的方法。因此,强烈建议库开发人员从 sun.misc.Unsafe 迁移到受支持的替换项,以便应用程序能够顺利迁移到现代 JDK。第一步将是进行调查,以了解是否、如何以及在何处使用 sun.misc.Unsafe 方法来访问内存。

~