写点什么

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:305603

评论

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

加强预算管理一体化,走进全面预算管理的数智化时代

智达方通

全面预算管理 预算管理 预算管理一体化

应用管理平台Walrus开源,构建软件交付新范式

SEAL安全

开源软件 企业号 8 月 PK 榜 Walrus

使用Dubbo这么久,才知道这些功能竟如此“亮眼”

java易二三

程序员 dubbo 计算机

稳定高效!NineData x SelectDB 完成产品兼容互认证

NineData

数据管理 大数据分析 SelectDB NineData 产品兼容互认证

代码随想录Day46 - 动态规划(八)

jjn0703

Bartender 4 for Mac:mac菜单栏应用管理软件

胖墩儿不胖y

Mac软件 菜单栏管理

Spring 中 @Primary 注解的原理是什么?

江南一点雨

spring

苹果电脑pdf编辑工具 PDF Expert 中文最新版

mac大玩家j

Mac 软件 pdf编辑器 PDF编辑 编辑pdf

【开源三方库】bignumber.js:一个大数数学库

OpenHarmony开发者

OpenHarmony

校源行丨开放原子开源基金会赴南大和南理工走访交流

开放原子开源基金会

开源

IPD(集成产品开发)与CMMI的对比

禅道项目管理

Android 组件化神器之Arouter

java易二三

Java 程序员 计算机

我们招聘啦!(Java、测试、后端)

数新网络官方账号

大数据 数据仓库 企业招聘

中型敏捷GenAI模型:面向企业垂直领域应用的实用型AI

Baihai IDP

AI AIGC LLM 白海科技 敏捷AI

Java中的常量:让程序更加稳定和可维护

java易二三

Java 程序员 常量 计算机

软件测试/测试开发丨Pytest结合数据驱动

测试人

Python 程序员 软件测试 数据驱动 pytest

在探索的道路上持续“做对”,火山引擎A/B测试成为这家企业数字基建

字节跳动数据平台

大数据 A/B 测试 企业号 8 月 PK 榜

802.11ax-QCN9024-802.11be -QCN6274-covers 2.4GHz&5GHz frequency bands-supports Bluetooth&Zigbee

wifi6-yiyi

802.11AX 802.11be

2023上海国际智慧停车展览会

AIOTE智博会

城博会 智慧停车展 智慧停车展会 智慧停车博览会

手机直播源码开发,协议讨论篇(三):RTMP实时消息传输协议

山东布谷科技

软件开发 RTMP 源码搭建 手机直播源码 实时消息传输协议

我可能开发了世界上最快的通用排序算法,比快排快 60%

java易二三

Java 程序员 计算机

软件测试/测试开发丨Vuetify框架的使用

测试人

vue.js 程序员 软件测试 vuetify

开启AI创新之旅!“华为云杯”2023人工智能应用创新大赛

科技热闻

PS2021一键抠图 Photoshop 2021中英文激活版下载 ps2021新功能

mac

PhotoShop PS20221下载 苹果mac Windows软件 图像编辑软件

Premiere Pro 2022更新内容 视频编辑软件Pr2022中文激活版下载体验

mac

Premiere Pro 2022 苹果mac 视频编辑软件 Windows软件下载

Kafka 开飙了!5分钟,带你体验一把“速度与激情”

java易二三

Java Docker 计算机

GC的前置工作,聊聊GC是如何快速枚举根节点的

Java随想录

Java JVM

GPT-4 全面开放,首部 AIGC 监管法规出台,字节入局大模型 | AIGC 月报速览

码上跃见

AI AIGC GPT #科技 GPT-4

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