OpenJDK 新闻综述:流收集器、作用域值、分代 Shenandoah、ZGC 非分代模式

OpenJDK 生态系统动态(2024年10月21日当周)

在2024年10月21日当周,OpenJDK 生态系统内出现了多项重要活动,主要涉及JDK 24的JEP(JDK Enhancement Proposal)进展。以下是主要内容的总结:


已确认的JEP

Stream Gatherers (JEP 485)

  • 状态:已从“Proposed to Target”提升为“Targeted”状态,确认将包含在JDK 24中。
  • 内容:该JEP旨在增强Stream API,支持自定义中间操作,使流管道能够以现有内置操作难以实现的方式转换数据。
  • 背景:此前已在JDK 22(JEP 461)和JDK 23(JEP 473)中进行了两次预览。

提出目标(Proposed to Target)的JEP

以下四项JEP已从“Candidate”状态提升为“Proposed to Target”状态,将在2024年10月28日当周进行评审:

ZGC: Remove the Non-Generational Mode (JEP 490)

  • 内容:提议移除Z Garbage Collector(ZGC)的非分代模式。分代模式已在JDK 23中成为默认模式(JEP 474)。
  • 目的:移除非分代模式可以减少维护负担,并加速分代模式的新功能开发。
  • 评审截止日期:2024年10月29日。

Scoped Values (Fourth Preview) (JEP 487)

  • 内容:提议进行第四次预览,旨在支持在线程内和线程间共享不可变数据,尤其适用于大量虚拟线程的场景。
  • 变化:移除了callWhere()runWhere()方法,API更加流畅。
  • 评审截止日期:2024年10月30日。

Key Derivation Function API (Preview) (JEP 478)

  • 内容:引入密钥派生函数(KDF)API,支持从密钥和其他数据派生额外密钥。
  • 目的:允许安全提供商以Java或原生代码实现KDF算法,并支持JEP 452(密钥封装机制)的实现。
  • 评审截止日期:2024年10月31日。

Generational Shenandoah (Experimental) (JEP 404)

  • 内容:提议将分代Shenandoah垃圾回收器作为实验性功能包含在JDK 24中。
  • 背景:原计划包含在JDK 21中,但因评审风险和时间不足被移除。
  • 评审截止日期:2024年10月30日。

新JEP候选者

以下三项JEP草案已提升为“Candidate”状态:

Simple Source Files and Instance Main Methods (Fourth Preview) (JEP 495)

  • 内容:提议进行第四次预览,旨在简化Java语言,使学生无需理解复杂语言特性即可编写程序。
  • 背景:此前已在JDK 21、22、23中进行了三次预览。

Module Import Declarations (Second Preview) (JEP 494)

  • 内容:提议进行第二次预览,增强Java语言的模块导入功能,简化模块化库的复用。
  • 变化:移除了对java.base模块的传递依赖限制,允许类型导入声明遮蔽模块导入声明。

Linking Run-Time Images without JMODs (JEP 493)

  • 内容:提议通过不使用JMOD文件,使jlink工具能够创建自定义运行时映像,从而减少JDK的大小约25%。
  • 目的:开发者可以从本地模块链接运行时映像,无论模块位于何处。

JDK 24发布计划

JDK 24的发布计划已由Oracle Java平台组首席架构师Mark Reinhold批准,具体时间如下:

  • Rampdown Phase One:2024年12月5日
  • Rampdown Phase Two:2025年1月16日
  • 初始发布候选版本:2025年2月6日
  • 最终发布候选版本:2025年2月20日
  • 正式发布:2025年3月18日

开发者可通过Java Bug数据库报告JDK 24中的问题。


以上是2024年10月21日当周OpenJDK生态系统的主要动态总结。

阅读 37
0 条评论