Redian新闻
>
JDK 20 和 JDK 21 最新动态

JDK 20 和 JDK 21 最新动态

公众号新闻

作者 | Michael Redlich
译者 | 刘雅梦
策划 | 丁晓昀

JDK 20 是自 JDK 17, 以来的第三个非长期支持(LTS)版本,正如甲骨文 Java 平台组的首席架构师 Mark Reinhold 所宣布的那样,它已经进入了初始候选版本阶段。主线源代码库已于 2022 年 12 月中旬(Rampdown 第一阶段)分支到 JDK 稳定代码库,并定义了 JDK 20 的特性集。严重错误,如回归或严重的功能问题,可能会得到修复,但必须通过修复请求(Fix-Request) 流程获得批准。根据发布时间表,JDK 20 将于 2023 年 3 月 21 日正式发布。值得注意的是,JEP 438 已于 2023 年 3 月初被添加到了特性集中。

最终包含了 7 个 JEP 形式的新特性,它们可以被分为两类:核心 Java 库Java 规范

这些新特性中的 5 个被归类到了 核心 Java 库 中:

  • JEP 429:作用域值(孵化器)

  • JEP 434:外部函数和内存 API(第二次预览)

  • JEP 436:虚拟线程(第二次预览)

  • JEP 437:结构化并发(第二个孵化器)

  • JEP 438: Vector API (第五个孵化器)

这些新特性中有 2 个被归类到了 Java 规范中:

  • JEP 432:记录模式(第二次预览)

  • JEP 433:switch 模式匹配(第四次预览)

我们研究了这些新特性以及支持它们的四个主要 Java 项目(Amber、Loom、Panama 和 Valhalla ),这些项目旨在孵化一系列组件,然后通过精心策划的合并最终将其纳入到 JDK 中。

Amber 项目

JEP 432,记录模式(第二次预览),为了响应上一轮 预览JEP 405,记录模式(预览版) 的反馈,它结合了增强功能。提议使用记录模式来增强语言,以解构记录值。记录模式可以与类型模式结合使用,以“实现一种强大的、声明式的、可组合的数据导航和处理形式”。类型模式最近通过 JDK 17 中提供的 JEP 406,switch 模式匹配(预览版) 和 JDK 18 中提供的 JEP 420,switch 模式匹配(第二次预览) 扩展到了 switch 语句标签中。与 JEP 405 相比,变化包括:增加了对泛型记录模式类型参数的推断支持;增加了对记录模式出现在增强 for 语句条件判断中的支持;并删除对了对命名记录模式的支持。

类似地,JEP 433:switch模式匹配(第四次预览),结合了增强功能以响应前三轮预览的反馈:JEP 427,switch 模式匹配(第三次预览),在 JDK 19 中提供;JEP 420,switch 模式匹配(第二次预览),在 JDK 18 中提供;以及 JEP 406,switch 模式匹配(预览版),在 JDK 17 中提供。与 JEP 427 相比,变化包括:简化了 switch 标签语法;现在, switch 表达式和语句以及其他支持模式的构造体都支持泛型类型模式和记录模式的类型参数推断。

Loom 项目

JEP 429,作用域值(孵化器),一个正在孵化的 JEP,最初名为范围局部变量(孵化器,Extent-Local Variables),提议在线程内部和线程之间共享不可变数据。这比线程局部变量更可取,尤其是在使用大量虚拟线程时。

JEP 436,虚拟线程(第二次预览),提议基于 JDK 19 中所提供的 JEP 425,虚拟线程(预览版) 对该特性进行第二次预览,以便留出时间来为该特性的演进提更多的反馈和体验。该特性为 Java 平台提供了虚拟线程,这是一种轻量级线程,可以极大地减少编写、维护和观察高吞吐量并发应用程序的工作量。需要注意的是,除了少量在 JDK19 中被被固化的 JEP 425 API 外,本预览版本没有进行任何更改,因此没有在第二次预览中提出。有关 JEP 425 的更多详细信息,请参阅 InfoQ 的新闻报道和甲骨文 Java 平台组 Java 开发人员倡导者 José Paumard 的 JEP Café 屏幕截图。

JEP 437,结构化并发(第二个孵化器),提议基于 JDK 19 中所提供的 JEP 428,结构化并发(孵化器) 重新孵化,以便留出时间来为该特性的演进提更多的反馈和体验。此特性的目的是通过引入一个库来将在不同线程中运行的多个任务视为单个工作单元,从而简化多线程编程。这可以简化错误处理和撤销,提高可靠性,并增强可观测性。唯一的变化是更新了 StructuredTaskScope 类,以支持在任务作用域中创建的线程可以继承作用域的值。这简化了线程间不可变数据的共享。有关 JEP 428 的更多详细信息,请参阅 InfoQ新闻报道。

Panama 项目

JEP 434,外部函数和内存 API(第二次预览),基于反馈进行了改进,并基于 JDK 19 中所提供的 JEP 424,外部函数和内存 API(预览版) 进行了第二次预览。相关孵化包括 JEP 419,外部函数和内存 API(第二个孵化器),在 JDK 18 中交付;以及 JEP 412,外部函数和内存 API(孵化器),在 JDK 17 中交付。该特性为 Java 应用程序提供了一个 API,通过高效地调用外部函数和安全地访问不受 JVM 管理的外部内存,在 Java 运行时之外与代码和数据进行互操作。JEP 424 的更新包括:统一了 MemorySegmentMemoryAddress 接口,即,内存地址由零长度的内存段建模;并且增强了 MemoryLayout 密封接口,以便于与在 JDK 19 中提供的 JEP 427,switch 中的模式匹配(第三次预览) 一起使用。

JEP 438,Vector API(第五个孵化器),结合了对前四轮孵化器反馈进行了增强:JEP 426,Vector API(第四个孵化器),在 JDK 19 中交付;JEP 417,Vector API(第三个孵化器),在 JDK 18 中交付;JEP 414,Vector API(第二个孵化器),在 JDK 17 中交付;JEP 338,Vector API(孵化器),作为 JDK 16 中的 孵化器模块 提供。该特性旨在增强 Vector API,以根据 JEP 424,外部函数和内存 API(预览版) 的定义,从 MemorySegment 中加载并存储向量。

JDK 21

计划于 2023 年 9 月发布一个 GA 和下一个 LTS 版本,目前 JDK 21 的 Proposed to Target 有两(2)个 JEP。

JEP 430,字符串模板(预览版),一种 JEP 类型的特性,提议使用字符串模板来增强 Java 编程语言,字符串模板类似于字符串字面量,但包含在运行时合并到字符串模板中的嵌入式表达式。该特性已被归类为 JDK 21 的 Proposed to Target,但尚未正式公布审查日期。

JEP 431,序列集合,提议引入“一个组能新表示集合概念的接口,这些集合的元素按照定义良好的序列或顺序排列,作为集合的结构属性。”其动因是由于集合框架(Collections Framework)中缺乏定义良好的排序和统一操作集。该特性已被归类为 JDK 21 的 Proposed to Target,但尚未正式公布审查日期。

我们可以根据一些 JEP 草案和候选版本来推测哪些额外的 JEP 有可能会被包含在 JDK21 中。

JEP 草案 8303358,作用域值(预览版),由红帽公司的杰出工程师 Andrew Haley 和 Andrew Dinn 提交,对即将发布的 JDK 20 中所提供的 JEP 429,作用域值(孵化器) 进行了改进。其最初名为范围局部变量(孵化器,Extent-Local Variables),由 Loom 项目支持,该特性旨在实现线程内部和线程之间不可变数据的共享。这比线程局部变量更可取,尤其是在使用大量虚拟线程时。虽然这个草案还没有达到 Candidate 状态,但描述中明确指出,这个 JEP 将被添加到 JDK21 中。

JEP 草案 8277163,值对象(预览版),是由 Valhalla 项目赞助的一个 JEP 特性,提议创建价值对象——无身份标识的值类,指定其实例的行为。该草案与 JEP 401,原语类(预览版) 相关,目前仍处于 Candidate 状态。

JEP 435,异步堆栈跟踪 VM API,一种 JEP 类型的特性,提议定义一个有效的 API,用于收集堆栈跟踪信息,以便根据包含 Java 和本地堆栈帧信息的信号处理器进行分析。

JEP 401,原语类(预览版),在 Valhalla 项目的支持下,引入了开发人员声明的原语类——特殊类型的值类——如前面提到的值对象(预览版)JEP Draft 中所定义——定义了新的原语类型。

JEP 草案 8301034,密钥封装机制 API,一种 JEP 类型的特性,提议:满足标准 密钥封装机制(Key Encapsulation Mechanism,KEM)算法的实现;通过更高级别的安全协议满足 KEM 的用例;并且允许可插拔的 KEM 算法的 Java 或本地实现。该草案最近进行了更新,其中包括一项重大更改,即取消了 DerivedKeyParameterSpec 类,转而将字段放在 encapsulate(int from, int to, String algorithm) 方法的参数列表中。

JEP 草案 8283227,JDK 源结构,一种信息类的 JEP,用于描述 JDK 源代码和 JDK 代码库中相关文件的总体布局和结构。该 JEP 提议帮助开发人员适应在 JDK9 中提供的 JEP 201,模块化源代码 中所描述的源代码结构。

JEP 草案 8280389,ClassFile API,提议提供一个用于解析、生成和转换 Java 类文件的 API。该 JEP 最初将作为 JDK 中 ASM(Java 字节码操作和分析框架)的内部替代品,并计划将其作为公共 API 开放出来。甲骨文(Oracle)的 Java 语言架构师 Brian Goetz 将 ASM 描述为“一个带有大量遗留包袱的旧代码库”,并提供了有关该草案将如何演进并最终取代 ASM 的背景信息。

JEP 草案 8278252,JDK 打包和安装指南,一个信息型的 JEP,提议为 macOS、Linux 和 Windows 提供创建 JDK 安装程序的指南,以降低不同 JDK 提供程序在 JDK 安装之间发生冲突的风险。其目的是通过规范化安装目录名称、包名称和其他可能导致冲突的安装程序元素,在安装 JDK 更新版本时提升更好的用户体验。

我们预计甲骨文将会很快开始为 JDK 21 提供更多的额外 JEP。

原文链接:

https://www.infoq.com/news/2023/03/java-20-so-far/

相关阅读:

Java 近期新闻:NetBeans 17、Spring 及 Tomcat 多项更新、JDk 20 版本 GraalVM(https://www.infoq.cn/article/UbJ7lV4OWYjY7UN4JGBD)

虚拟线程:大规模 Java 应用的新基石 (https://www.infoq.cn/article/YaBqqD7fd6kX97GbhkGm)

Just:Spring Boot 应用的新命令行界面 (https://www.infoq.cn/article/KUFfYLk4zWcQ1VZXflpp)

声明:本文为 InfoQ 翻译,未经许可禁止转载。

点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

Docker正在淘汰开源组织,CTO硬刚开发者,网友:想赚钱可以,但沟通方式烂透了

刚刚,百度文心一言揭开面纱!能续写《三体》,算“鸡兔同笼”题,将开启首批内测

GPT-4 重磅发布,吊打 ChatGPT!编程能力牛到让我睡不着:10秒做出一个网站,1分钟开发一个游戏

97.5%的技术老大对涨薪这事儿比较乐观|InfoQ 研究中心联合TGO 鲲鹏会发布《中国科技领导者画像研究报告 2023》

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
新海诚最新动画电影《铃芽之旅》,定档下月Java 近期新闻:JDK 20、新的 JEP 草案、JobRunr 6.0、GraalVM 22.3.1Java 近期新闻:Payara Platform、Liberica JDK 更新和 JobRunr 6.0 里程碑版本独家|风起 2023:梅涛、谭平、金榕...AI 科学家最新动态汇总,中国 AI 腾飞要先改变游戏规则章泽天最新动态流出:这次,惊艳所有人Costco最新打折图表 5月8日 - 5月21日!!!可省$2100多JDK 20 / Java 20正式GA国殇2022,文学城网友的集体哀悼牛剑新动态!剑桥本科添新专业,牛津增设新笔试!你的申请开始准备了吗?2021年《中国妇女发展纲要(2021—2030年)》统计监测报告突发!美国重大发布,欧盟没资格!35000亿资金疯狂涌入,什么情况?五角大楼最新动作曝光成龙最新动作喜剧《龙马精神》来了海涅、席勒和肖邦7号文外汇登记知多少——进出口监管最新动态评析(2023年4月刊)突发!台股5分钟惊心一跳,发生了啥?美军第七舰队最新动作疯传,俄军预警机被炸毁,比亚迪系全线杀跌成龙最新动作喜剧《龙马精神》即将上映!楼市新动态!多地鼓励现房销售试点,这地推行"认贷不认房"直播预约 | 王捷:全球数据合规新动态&出海企业合规要点启示 | DPOHUB何谈第14期“国家队”有最新动作!持仓名单曝光,暴赚300亿元!布局了这些股,名单一览……深挖!COSTCO护肤大清仓:斯佳唯婷,olay,肽霜都有巨折!今日新动态继续!成龙最新动作喜剧《龙马精神》重磅登陆DC!这些社交媒体新动态,好抓马!曹禺:再也写不出伟大的作品鹰击-21,有了新动态!Java 近期新闻:NetBeans 17、Spring 及 Tomcat 多项更新、JDk 20 版本 GraalVM牛剑新动态!剑桥本科添新专业,牛津增设新笔试!24fall你的申请开始准备了吗?养老金不涨了?官方回应来了!公布养老金最新动向:信息量非常大!2021年《中国儿童发展纲要(2021—2030年)》统计监测报告老海归的收入、纳税、理财刚刚,市场突传美军最新动向,A50直线拉升!金与正发声,什么情况?1人被抓近80名干部涉案,更有六毒俱全再说说龙泉寺(三)Java 近期新闻:JDK 21 发布计划、Payara 平台、JBang、JHipster、WildFly从 JDK 9 到 19,认识一个新的 Java 形态(内存篇)升级指南之JDK 11+ 新特性和AJDK成龙最新动作喜剧《龙马精神》要来芝加哥啦!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。