引言:

随着时间的指针指向2025年1月26日,Java 平台迎来了一个重要的里程碑:JDK 24 正式进入 Rampdown 第二阶段。这意味着该版本的核心功能已全部冻结,不再接受新的特性加入。这不仅标志着 Java 24 开发周期的关键节点,也预示着 Java 技术生态系统即将迎来一次重要的更新。作为一名资深的新闻记者,我将深入剖析 Java 24 的关键特性、背后的技术考量以及它对 Java 开发社区的潜在影响。

主体:

Java 24:一次迭代的进化

Java 24 的发布并非横空出世,而是 Java 平台持续演进的一部分。它并非长期支持(LTS)版本,而是介于两个 LTS 版本之间的过渡版本,旨在引入新的特性并为未来的 LTS 版本奠定基础。Oracle 的 Java 平台首席架构师 Mark Reinhold 在 OpenJDK 邮件列表中宣布了这一消息,预示着 JDK 24 将于 3 月 18 日正式发布。

24 个 JEP:新特性与实验性探索

JDK 24 包含了 24 个 Java 增强提案(JEP),这些提案涵盖了性能优化、安全加固、API 改进等多个方面。其中,两个 JEP 处于实验性阶段,还有八个处于不同的预览阶段。这表明 Java 平台在保持稳定性的同时,也在积极探索新的技术方向。

值得注意的是,尽管功能已冻结,但现有的 JEP 在极高的通过门槛下仍有可能进行后期更新。这意味着开发团队在最后阶段仍然会进行严格的测试和审查,以确保最终版本的质量和稳定性。

告别 Windows 32 位:架构的现代化

JDK 24 的一个重要变化是删除了对 Windows 32 位 x86 架构的支持。JEP 479 明确指出,此举旨在简化 JDK 的构建和测试基础架构,停止针对 Windows 32 位 x86 的所有测试和开发工作。这一决定反映了技术发展的趋势,32 位架构在现代计算环境中逐渐被淘汰。

然而,值得注意的是,其他 32 位平台(如 ARM32)仍然受到支持。此外,Linux 32 位 x86 端口将被弃用,并计划在 JDK 25 中彻底删除。这一逐步淘汰的策略旨在平稳过渡,避免对现有系统造成过大的冲击。

JNI 警告:安全意识的提升

Java 原生接口(JNI)长期以来一直是 Java 调用原生代码(如 C 编写的库)的主要方式。JDK 24 在使用 JNI 时引入了警告,这并非要弃用 JNI,而是为了提高安全意识。

Java 平台引入了新的外部函数和内存(FFM)API,旨在提供更安全、更高效的调用原生代码的方式。通过对 JNI 和 FFM API 实施一致级别的警告,Java 平台希望促使开发人员在启动时明确启用 JNI 和 FFM API,因为 Java 和原生代码之间的任何交互都存在潜在风险。

sun.misc.Unsafe 的落幕:拥抱标准 API

sun.misc.Unsafe 命名空间中的内存访问方法长期以来被认为是 Java 的“后门”,允许开发人员绕过 Java 的安全机制直接操作内存。JDK 24 在第一次调用这些方法时会发出警告,这些方法已被弃用,并将在未来的版本中删除。从 JDK 26 开始,只要使用这些方法就会抛出异常。

开发人员需要迁移到 FFM API 和 VarHandle API 中的标准 API,以确保代码的兼容性和安全性。这一举措表明 Java 平台正在积极清理历史遗留问题,并鼓励开发人员使用更安全、更标准化的 API。

JEP 483:启动性能的飞跃

JEP 483 通过预先加载类来显著缩短应用程序的启动时间。该特性会监视和缓存应用程序运行一次后使用的类,以便在下次运行时立即使用它们。这个想法可以追溯到 2004 年,经过多年的发展和完善,终于在 JDK 24 中得以实现。

根据提案,使用此特性时,Spring PetClinic 示例的启动速度提高了 42%。这对于大型应用程序和微服务来说是一个巨大的进步,可以显著提升用户体验和系统性能。

安全管理器的谢幕:简化复杂性

安全管理器是 Java 从第一个版本开始就存在的一个特性,默认情况下将所有代码视为不受信任。然而,由于其复杂性和难以配置,很少有应用程序会使用它。即使使用具有适用策略文件的框架(例如 Tomcat),开发人员仍然面临着几乎无法克服的挑战,即弄清楚他们自己的代码和他们使用的库所需的权限。

JDK 24 永久禁用了安全管理器,解除了 JDK 的开销,并简化了 Java 平台库的复杂性。这一举措反映了 Java 平台在安全策略上的转变,从基于沙盒的细粒度权限控制转向基于更现代化的安全机制。

抗量子加密:面向未来的安全

量子计算的兴起对现有的加密算法构成了威胁。JEP 496 和 497 为密钥封装和数字签名算法引入了抗量子模块,旨在应对量子计算机破解现有加密算法的风险。

这些新的加密算法基于后量子密码学,可以在量子计算机时代提供更强大的安全保障。这表明 Java 平台在安全方面的前瞻性,并致力于为未来的安全挑战做好准备。

Java 24 的影响:开发社区的机遇与挑战

Java 24 的发布对 Java 开发社区来说既是机遇也是挑战。新的特性和改进将提升开发效率、性能和安全性,但也需要开发人员学习和适应。

性能提升:更快的应用程序

JEP 483 引入的预加载类特性将显著提升应用程序的启动速度,这对大型应用程序和微服务来说是一个巨大的福音。更快的启动速度意味着更好的用户体验和更高的系统效率。

安全加固:更可靠的系统

JNI 警告、sun.misc.Unsafe 的弃用以及抗量子加密的引入,都表明 Java 平台在安全方面做出了巨大的努力。这些改进将有助于开发人员构建更安全、更可靠的应用程序。

API 现代化:更简洁的代码

FFM API 和 VarHandle API 的引入将取代过时的 JNI 和 sun.misc.Unsafe,为开发人员提供更安全、更标准化的 API。这将有助于编写更简洁、更易于维护的代码。

学习曲线:适应新变化

Java 24 的许多新特性和改进都需要开发人员学习和适应。例如,从 sun.misc.Unsafe 迁移到 FFM API 和 VarHandle API 可能需要一定的时间和精力。

兼容性:平稳过渡

尽管 Java 24 引入了一些重大变化,但 Java 平台一直致力于保持向后兼容性。开发人员在升级到 Java 24 时,应仔细测试其应用程序,以确保平稳过渡。

Java 25:下一个 LTS 版本

值得注意的是,Java 24 并非长期支持(LTS)版本。下一个 LTS 版本是 JDK 25,预计于 9 月 16 日发布。这意味着 Java 24 的生命周期相对较短,开发人员应尽早规划升级到 JDK 25 的计划。

结论:拥抱变化,迎接未来

Java 24 的发布标志着 Java 平台的一次重要迭代。它不仅带来了性能提升、安全加固和 API 改进,也反映了 Java 平台在技术发展和安全挑战面前的积极应对。

作为一名资深的新闻记者,我见证了 Java 平台多年的发展历程。Java 24 的发布再次证明了 Java 平台在不断创新和进步,并致力于为开发人员提供更强大、更可靠的工具。

对于 Java 开发社区来说,Java 24 的发布既是机遇也是挑战。开发人员应积极拥抱变化,学习新特性,并适应新的开发模式。只有这样,才能充分利用 Java 平台的优势,构建更优秀的应用程序。

参考文献:


>>> Read more <<<

Views: 1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注