写点什么

OpenJDK 近期新闻:实例主方法、灵活的构造函数体、模块导入声明

  • 2024-11-25
    北京
  • 本文字数:3215 字

    阅读完需:约 11 分钟

大小:1.60M时长:09:20
OpenJDK近期新闻:实例主方法、灵活的构造函数体、模块导入声明

2024 年 11 月 4 日这一周 OpenJDK 生态系统的活动重点如下:五个 JEP 成功完成各自的评审流程,已确定在 JDK 24 中发布;五个新的 JEP 进入 Proposed to Target 状态,目标版本为 JDK 24,并在 2024 年 11 月 11 日这一周接受评审;另外,还有两个 JEP 草案已进入 Candidate 状态。


Targeted 状态的 JEP


JEP 493(不使用 JMOD 链接运行时镜像)已从 “Proposed to Target” 进入到“Targeted” 状态,目标版本为 JDK 24。这一 JEP 提议允许 工具在不使用 JDK 的 JMOD 文件的情况下创建自定义运行时镜像,从而将 JDK 大小减少约 25%。这个特性在构建 JDK 时需要显式启用。开发者现在可以从本地模块链接运行时镜像,不受模块位置的限制。


JEP 491(同步虚拟线程而不固定)已从 “Proposed to Target” 进入到 “Targeted” 状态,目标版本为 JDK 24。该 JEP 提议允许在同步方法和语句中阻塞的虚拟线程释放其占用的底层平台线程,以便其他虚拟线程能够使用这些线程,从而提高 Java 代码的可扩展性。其目的是解决“几乎所有虚拟线程都绑定在特定平台线程上的问题,这一限制严重影响了虚拟线程处理应用工作负载的能力。”


JEP 488(模式、instanceof 和 switch 中的原始类型(第二次预览),已从 “Proposed to Target” 进入到 “Targeted” 状态,目标版本为 JDK 24。该 JEP 来自 Amber Project,在经过第一次预览(JEP 455(模式、instanceof 和 switch 中的原始类型(预览))后,再次进行预览以获得更多反馈。该特性增强了模式匹配,允许在所有模式上下文中使用原始类型模式,并扩展了 instanceof 和 switch ,可以支持所有原始类型。更多细节可在 Aggelos Biboudis规范草案中找到。


JEP 486(永久禁用安全管理器)已从 “Proposed to Target” 进入到 “Targeted” 状态,目标版本为 JDK 24。该 JEP 提议永久禁用 SecurityManager 类,因其已在 JEP 411(弃用安全管理器)中被弃用(JDK 17 )。尽管开发者在弃用后仍可启用 SecurityManager,但该特性将在未来被彻底移除。


JEP 450(紧凑对象头(实验))已从 “Proposed to Target” 进入到 “Targeted” 状态,目标版本为 JDK 24。该 JEP 受 Lilliput Project 的启发,提议在 64 位架构上将 HotSpot JVM 中的对象头大小从 96 位至 128 位缩减到 64 位。由于该特性是实验性质的,因此默认情况下是禁用的,启用后可能会引发意外后果。


Proposed to Target 的 JEP


JEP 495(简化的源文件和实例主方法(第四次预览))已从 “Candidate” 进入到 “Proposed to Target” 状态,目标版本为 JDK 24。这一 JEP 提议在之前三轮预览之后进行第四次预览(除了再次更名外未做变更),前三轮预览分别为 JEP 477(隐式声明类和实例主方法(第三次预览))、JEP 463(隐式声明类和实例主方法(第二次预览))和 JEP 445(未命名类和实例主方法(预览))。该特性旨在“让学生可以在不需要理解为大型程序设计的语言特性的情况下编写第一个程序”。更多详情请参阅 Java 语言架构师 Brian Goetz 的博文 Paving the on-ramp。Java 社区成员 Gavin Bierman发布首份规范草案供社区评审。评审预计将在 2024 年 11 月 13 日结束。


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


JEP 492(灵活的构造方法体(第三次预览))已从 “Candidate” 进入到 “Proposed to Target” 状态,目标版本为 JDK 24。该 JEP 提议进行第三轮预览,仅有少量变更,以便从前两轮的预览中获得更多反馈,具体包括:在 JDK 23 中发布的 JEP 482(灵活的构造方法体(第二次预览))和在 JDK 22 中发布的 JEP 447(super() 的前置语句(预览))。该特性允许在构造方法中调用 或 之前插入不引用正在被创建的对象实例的语句,同时保持现有构造方法安全性和初始化保证。该 JEP 的变更包括:处理局部类,并放宽“字段在显式构造方法调用之前不可访问”的限制,调整为“字段在显式构造方法调用之前不可读取”。Oracle 技术顾问 Gavin Bierman 已提供了初始规范,供 Java 社区评审和反馈。该审查预计将于 2024 年 11 月 14 日结束。


JEP 483(预加载和链接类)已从 “Candidate” 进入到 “Proposed to Target” 状态,目标版本为 JDK 24。该 JEP 提议在 HotSpot Java 虚拟机启动时立即提供应用程序所需的已加载和已链接类来“提高启动速度”。实现这一目标的方法是在应用程序运行期间监控类加载和链接,并将这些信息存储在缓存中,以便后续运行时使用。该特性将为未来改进启动和预热速度打好基础。评审预计将于 2024 年 11 月 14 日结束。


JEP 479(移除对 Windows 32 位 x86 架构的支持)已从 “Candidate” 进入到 “Proposed to Target” 状态,目标版本为 JDK 24。该 JEP 提议在 JEP 449(放弃支持 Windows 32 位 x86 架构)(JDK 21)之后,完全移除对 Windows 32 位 x86 架构的支持。其目标是:移除所有仅支持 Windows 32 位平台的代码路径;停止所有针对 Windows 32 位平台的测试和开发工作;并简化 OpenJDK 的构建和测试基础设施,与现代计算标准保持一致。评审预计将于 2024 年 11 月 12 日结束。


新的候选 JEP


JEP 497(基于模格的抗量子数字签名算法)已从 JEP Draft 8339010 进入到 “Candidate” 状态。该 JEP 提议“通过提供基于模格的抗量子数字签名算法(ML-DSA)实现”来增强 Java 应用程序的安全性。该算法已由 FIPS 204 标准化。这将通过实现 Java 的 KeyPairGeneratorSignatureKeyFactory 类来实现。


JEP 496(基于模格的抗量子密钥封装机制,已从 JEP Draft 8339009 进入到 “Candidate” 状态。该 JEP 提议“通过提供基于模格的抗量子密钥封装机制(ML-KEM)实现”来增强 Java 应用程序的安全性。该机制已由 FIPS 203 标准化。这将通过实现 Java 的 KeyPairGeneratorKEMKeyFactory 类来实现。


JDK 24 特性集合及发布时间表


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


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

  • Rampdown Phase Two:2025 年 1 月 16 日

  • 初始发布候选版本:2025 年 2 月 6 日

  • 最终发布候选版本:2025 年 2 月 20 日

  • 正式发布:2025 年 3 月 18 日


在距离 JDK 24 Rampdown Phase One(特性集将被冻结)还有一个多月的时间里,目前已纳入特性集的 JEP 共计 19 个(包括 Proposed to Target):



JDK 24 的新特性数量已经超过 JDK 16 和 JDK 11 中各自交付的 17 项特性。对于 JDK 24,开发者可以通过 Java Bug Database 报告错误。


原文链接

https://www.infoq.com/news/2024/11/jdk-news-roundup-nov04-2024/

2024-11-25 09:305702

评论

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

腾讯2022年度研发大数据报告:研发人员占比74%,新增研发项目超7000个

科技热闻

for 循环嵌套 for 循环,你需要懂的代码性能优化技巧!

三十而立

Java

远程桌面连接软件:Jump Desktop 8 mac激活版

真大的脸盆

Mac 远程办公 Mac 软件 远程连接 远程工具

软件测试/测试开发丨Pb协议的接口测试

测试人

软件测试 自动化测试 测试开发

面试造飞机? 网易在职顶级大佬“java面试真题 2023” (助上岸)

三十而立

谁能让企业运营快速提效,那当然瓴羊Quick BI

巷子

基于飞桨实现的特定领域知识图谱融合方案:ERNIE-Gram文本匹配算法

飞桨PaddlePaddle

阿里云资深技术专家闫卫斌:打造具备极致容灾能力的对象存储

云布道师

阿里云 云存储

OpenAI创始人:GPT-4的研究起源和构建心法

OneFlow

人工智能 深度学习 ChatGPT Greg Brockman

面试造飞机?GitHub顶级“java面试手册2023”(统计通过率95%)

三十而立

Java

组装式应用新趋势:小程序技术科提高软件开发效率

FinFish

小程序容器 组装式应用 小程序技术

全员狠人!CG大佬的连环暴击!第二届瑞云3D渲染动画创作大赛入围名单出炉!人气奖投票进行时!

Renderbus瑞云渲染农场

3D渲染动画创作大赛 瑞云3D渲染动画大赛

直面风口,未来不仅是中文版ChatGPT,还有AGI大时代在等着我们

加入高科技仿生人

人工智能 AI 低代码 数智化 AGI

Java 内联类初探

三十而立

Java

软件测试/测试开发丨接口协议之抓包分析 TCP 协议

测试人

软件测试 自动化测试 测试开发

如何将营销模板以小程序的形式上架至App?

FinFish

小程序容器 小程序技术 营销模板

牛皮!GitHub上标星90.6K的Java面试指南+笔记

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

Java敏捷开发框架 高效搭建数据报表

力软低代码开发平台

现货合约一键自动跟单app系统开发搭建(api对接)

开发v-hkkf5566

政企中小微客户业务一线支撑赋能

鲸品堂

通信 运营商 电信运营商 企业号 3 月 PK 榜

智能健康管理正当时,脉冲技术的一次自证与他证

脑极体

skg 按摩仪

提升面试成功率:深入理解C++11新特性

小万哥

程序员 面试 软件开发 新特性 C++11

软件测试/测试开发丨RPC接口测试技术-Tcp 协议的接口测试

测试人

软件测试 自动化测试 测试开发

瓴羊Quick BI,让企业运营提效的好工具

对不起该用户已成仙‖

MQTT协议是什么?MQTT和Kafka的联系与区别

EMQ映云科技

kafka 物联网 IoT mqtt 企业号 3 月 PK 榜

蚁人与量子停车场

白洞计划

AI 智慧停车场

看起来很简单的二维码巡检,究竟是怎么实现的?

草料二维码

小程序 二维码 表单 设备巡检

8个不能错过的程序员必备网站,惊艳到我了!!!

引迈信息

前端

python进阶:带你学习实时目标跟踪

华为云开发者联盟

Python 人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

NFT质押借贷平台开发系统DApp搭建

薇電13242772558

NFT

探索大语言模型垂直化训练技术和应用-陈运文

NLP资深玩家

人工智能 ChatGPT

OpenJDK近期新闻:实例主方法、灵活的构造函数体、模块导入声明_编程语言_Michael Redlich_InfoQ精选文章