OpenJDK新闻综述:紧凑对象头、同步虚拟线程、禁用安全管理器

OpenJDK生态系统活动总结

在2024年10月28日这一周,OpenJDK生态系统迎来了多项重要进展,主要包括四个JEP已通过评审,成为JDK 24的Targeted状态,以及五个新的JEP被Proposed to Target,将在2024年11月4日这一周进行评审。

Targeted JEPs

  1. JEP 490: ZGC: 移除非分代模式
    该JEP提议移除Z垃圾收集器(ZGC)的非分代模式。随着JEP 474在JDK 23中引入分代模式作为默认模式,移除非分代模式将减少维护两种模式的工作量,并加速分代模式新功能的开发。
  2. JEP 487: 作用域值(第四次预览)
    该JEP提议进行作用域值的第四次预览,移除了ScopedValue类中的callWhere()runWhere()方法,使API更加流畅。作用域值支持在虚拟线程中共享不可变数据,优于线程局部变量。
  3. JEP 478: 密钥派生函数API(预览)
    该JEP提议引入密钥派生函数(KDF)API,允许安全提供者以Java或本地代码实现KDF算法,并支持在JEP 452(密钥封装机制)中使用。
  4. JEP 404: 分代Shenandoah(实验性)
    该JEP提议提供实验性的分代模式,旨在未来版本中将其作为默认模式。该JEP原计划在JDK 21中发布,但因评审风险和时间不足被推迟。

Proposed to Target JEPs

  1. JEP 493: 不使用JMODs链接运行时镜像
    该JEP提议通过jlink工具创建自定义运行时镜像,减少JDK约25%的大小,需在构建JDK时显式启用。
  2. JEP 491: 无需固定的虚拟线程同步
    该JEP提议通过释放被阻塞的虚拟线程的平台线程,提高使用同步方法和语句的Java代码的可扩展性,减少虚拟线程被固定的情况。
  3. JEP 488: 模式匹配、instanceof和switch中的原始类型(第二次预览)
    该JEP提议进行第二次预览,允许在所有模式上下文中使用原始类型模式,并扩展instanceofswitch以支持所有原始类型。
  4. JEP 486: 永久禁用安全管理器
    该JEP提议永久禁用自JDK 17起被弃用的SecurityManager类,进一步推进其最终移除。
  5. JEP 450: 紧凑对象头(实验性)
    该JEP提议将HotSpot JVM中的对象头大小从96-128位减少到64位,目前为实验性功能,默认禁用。

JDK 24功能集和发布时间表

JDK 24的发布时间表如下:

  • 第一阶段冻结:2024年12月5日
  • 第二阶段冻结:2025年1月16日
  • 初始候选版本:2025年2月6日
  • 最终候选版本:2025年2月20日
  • 正式发布:2025年3月18日

目前JDK 24的功能集包括14个JEP,涵盖了垃圾收集、密钥派生、线程同步等多个方面。开发者可通过Java Bug Database报告问题。

阅读 56
0 条评论