写点什么

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

  • 2024-11-11
    北京
  • 本文字数:2176 字

    阅读完需:约 7 分钟

大小:1.11M时长:06:27
OpenJDK近期新闻:流收集器、作用域值、分代Shenandoah、ZGC非分带模式

OpenJDK 生态系统近期活动频繁,重点包括:已确定在 JDK 24 中发布的从“Proposed to Target”进入到“Targeted”的 JEP 以及已提升为 Candidate 状态的草案。JEP 485(流收集器)是第五个被确认在 JDK 24 中发布的 JEP。四个 JEP 状态为“Proposed to Target”,并在 2024 年 10 月 28 日这一周进行评审。


Targeted 的 JEP


在评审结束后,JEP 485(流收集器)已从”Proposed to Target“进入”Targeted“状态,目标版本为 JDK 24。这个 JEP 提议在进行了两轮预览后完成这个特性:在 JDK 23 中发布的 JEP 473(流收集器(第二次预览))和在 JDK 22 中发布的 JEP 461(流收集器(预览))。这个特性旨在增强流式 API,支持自定义中间操作,“允许流式管道以一种难以通过现有内置中间操作实现的方式进行数据转换。”更多关于这个 JEP 的细节可以在其设计文档和 InfoQ 的新闻报道中找到。


Proposed to Target 的 JEP


JEP 490(ZGC:移除非分代模式)已从”Candidate“进入到”Proposed to Target“状态,目标版本为 JDK 24。这个 JEP 提议移除 Z Garbage Collector(ZGC)的非分代模式。JEP 474(ZGC:默认分代模式)提议分代模式为默认的回收模式,并已在 JDK 23 中发布。通过移除 ZGC 的非分代模式,不仅消除了维护两种模式的负担,还加快了分代模式下新功能的开发速度。评审于 2024 年 10 月 29 日结束。


JEP 487(作用域值(第四次预览))已从“Candidate”进入“Proposed to Target”状态,目标版本为 JDK 24。之前这个 JEP 叫作范围本地变量(孵化器),现提议进行第四次预览,其中包含了一个变化,从之前的一轮孵化和三轮预览中获得额外的反馈:在 JDK 23 中发布的 JEP 481(作用域值(第三次预览);在 JDK 22 中发布的 JEP 464(作用域值(第二次预览));在 JDK 21 中发布的 JEP 446(作用域值(预览));以及在 JDK 20 中发布的 JEP 429(作用域值(孵化器))。这个特性支持在单个线程内部以及跨线程共享不可变数据。这比线程局部变量更受青睐,特别是当使用大量虚拟线程时。与之前的预览相比,唯一的变化是移除了ScopedValue类的 callWhere()和 runWhere()方法,简化了 API。通过在ScopedValue.Carrier类中定义的 call()和 run()方法,可以使用一个或多个绑定的作用域值。评审于 2024 年 10 月 30 日结束。


JEP 478(密钥派生函数 API(预览))已从“Candidate”进入到“Proposed to Target”状态,目标版本为 JDK 24。这个 JEP 提议为密钥派生函数(KDF,从密钥和其他数据中派生额外密钥的密码算法)引入 API,目标是:允许安全供应商在 Java 或本地代码中实现 KDF 算法,并可以在 JEP 452(密钥封装机制)的实现中使用 KDF。评审于 2024 年 10 月 31 日结束。


JEP 404(分代Shenandoah(实验))已从 Candidate“进入到”Proposed to Target“状态,目标版本为 JDK 24。最初的目标版本为 JDK 21,但因“在评审过程中识别出的风险以及缺少进行大规模代码贡献所需的评审时间”而被移出最终特性集。Shenandoah 团队决定“提供他们能够提供的最好的分代 Shenandoah”,并在未来的 JDK 版本中发布。评审于 2024 年 10 月 30 日结束。


新的候选 JEP


JEP 495(简单的源文件和实例主方法(第四次预览))已从“JEP Draft 8335984”进入到“Candidate”状态。这个 JEP 提议在经过之前的三轮预览后进行第四次预览,不包含变更(除了第二次预览进行了名称变更):在 JDK 23 中发布的 JEP 477(隐式声明类和实例主方法(第三次预览));在 JDK 22 中发布的 JEP 463(隐式声明类和实例主方法(第二次预览));以及在 JDK 21 中发布的 JEP 445(未命名类和实例主方法(预览))。这个特性旨在“让学生可以在不需要理解为大型程序设计的语言特性的情况下编写他们的第一程序。”这个 JEP 将 Oracle Java 语言架构师Brian Goetz在 2022 年 9 月发表的博文Paving the on-ramp推进了一步。Oracle 技术顾问Gavin Bierman已经发布规范文档的第一稿,供 Java 社区评审。关于 JEP 445 的更多细节可以在 InfoQ 的新闻报道中找到。


JEP 494(模块导入声明(第二次预览))已从“JEP Draft 8335987”进入到“Candidate”状态。这个 JEP 在经过第一轮预览后提议进行第二次预览:在 JDK 23 中发布的 JEP 476(模块导入声明(预览))。这个特性将增强 Java 编程语言的能力,能够简洁地导入一个模块导出的所有包,目标是简化模块库的重用,无需将代码直接导入到模块本身。与第一次预览相比的变化包括:取消了模块不允许声明对 java.base 模块传递依赖的限制;更新 java.se 模块的声明,使其传递性地依赖 java.base 模块;允许按需声明的类型导入覆盖模块导入声明。这些变化意味着导入 java.se 模块将能够按需导入整个 Java SE API。


JEP 493(不使用JMOD链接运行时镜像)已从“JEP Draft 8333799”进入到“Candidate”状态。这个 JEP 提议“能够通过使 jlink 工具创建不依赖JMOD文件的自定义运行时镜像,将 JDK 的体积减少约 25%。”这个功能必须在构建 JDK 时显式启用。开发者可以从他们的本地模块链接运行时镜像,无论这些模块存放在何处。


JDK 24 发布时间表


Oracle Java 平台组首席架构师Mark Reinhold批准的 JDK 24 的发布计划如下:

  • Rampdown Phase One(从主线分叉):2024 年 12 月 5 日

  • Rampdown Phase Two:2025 年 1 月 16 日

  • Initial Release Candidate:2025 年 2 月 6 日

  • Final Release Candidate:2025 年 2 月 20 日

  • General Availability:2025 年 3 月 18 日


对于JDK 24,开发者可以通过Java错误数据库报告错误。


原文链接

https://www.infoq.com/news/2024/10/jdk-news-roundup-oct21-2024/


2024-11-11 10:463723

评论

发布
暂无评论
发现更多内容

更易用的OceanBase|生态工具征文大赛正式开启!

OceanBase 数据库

拆解一下消息队列、任务队列、任务调度系统

Java永远的神

程序员 架构 程序人生 后端 java面试

基于Delta Lake构建数据湖仓体系

阿里云大数据AI技术

大数据 开源 企业号十月 PK 榜

JscriptScript的类型

渔戈

JavaScript 前端 10月月更

数聚生态,智驭全界!看天翼云如何为智慧园区注入新动能!

天翼云开发者社区

云网融合赋能智慧转型,“天翼云管 ”开启贴身云管家时代

天翼云开发者社区

京东云开发者|探寻软件架构的本质,到底什么是架构?

京东科技开发者

架构 软件架构 软件架构师

华为云数据库GaussDB(for MySQL),为企业云上业务发展保驾护航

爱尚科技

js函数式编程讲解

hellocoder2029

JavaScript

React高级特性之Context

夏天的味道123

React

记一次漏洞挖掘【网络安全】

网络安全学海

网络安全 安全 信息安全 渗透测试 WEB安全

Webpack构建速度优化

Geek_02d948

webpack

react组件深度解读

xiaofeng

React

正版软件授权代理限时无门槛开放!仅限十一月份!

淋雨

软件 销售 代理商

Vue实战必会的几个技巧

yyds2026

Vue

系统服务熔断、限流:常见限流算法&主流熔断技术详解

程序员小毕

Java 程序员 分布式 微服务 SpringCloud

深入理解什么是TCP 粘包?粘包警察是什么梗?

C++后台开发

网络协议 TCP/IP 后端开发 C++开发 TCP 粘包

MASA MAUI iOS如何绑定微信

MASA技术团队

MASA MAUI Xamarin MASA Blazor

react进阶用法完全指南

xiaofeng

React

JavaScript的类型转换

渔戈

JavaScript 前端 10月月更

双向绑定

yyds2026

Vue

、作用域链和它的一些优化

hellocoder2029

JavaScript

天翼云国产化全栈云服务赋能数字中国建设

天翼云开发者社区

华为云数据库-GaussDB for MySQL数据库

爱尚科技

架构实战营作业3

阿姆斯壮

架构实战营 架构实战训练营9期

nodejs实现jwt

coder2028

node.js

React高级特性之Render Props

夏天的味道123

React

喜讯!麦聪软件获得国际权威机构颁发的CMMI3证书

雨果

麦聪软件 CMMI3

koa实战

coder2028

node.js

「MySQL高级篇」MySQL索引底层原理,设计原则详解

Java全栈架构师

Java MySQL 数据库 程序员 索引

Webpack最佳实践

Geek_02d948

webpack

OpenJDK近期新闻:流收集器、作用域值、分代Shenandoah、ZGC非分带模式_编程语言_Michael Redlich_InfoQ精选文章