Java 21 发布,带来诸多新特性又一次创新的飞跃

一、引言

2023年9月19日,Oracle公司正式发布了JDK 21,这是按照六个月发布周期准时交付的第12个功能版本。

这种可预测性让开发者能够轻松地管理他们对创新的采用,感谢稳定的改进流。JDK 21不仅包含了数千个性能、稳定性和安全性更新,还提供了几十个新功能和增强,其中15个增强足够重要,值得拥有自己的JDK增强提案—JEP,涵盖了六个预览功能和一个孵化器功能。

图表显示自Java 8以来每个版本的功能数量 Java的性能、稳定性和安全性的提升,使其继续成为世界上最受欢迎的编程语言。

此外,Oracle将为Java 21提供至少八年的长期支持。这种延长的支持期限让组织能够以最小的维护成本,让应用程序更长时间地保持在生产环境中,并且可以按照他们自己的节奏进行迁移。根据客户反馈和Java生态系统中的使用情况,Oracle还宣布将Java 11的长期支持延长至至少2032年1月,从Oracle那里获得至少八年以上的支持和更新。

与以前的版本一样,Java 21由Oracle与OpenJDK 社区中许多个人和组织的贡献一起构建。Java在已修复的24,196个JIRA问题中,有17,288个由Oracle工作人员完成,而6,908个由其他组织工作人员或个人开发者贡献。通过查看问题并从受让人那里收集组织数据,得到以下图表,显示了在Java中赞助贡献开发的组织:

图表显示每个组织的修复数量 在Java 21中,标记为已修复的2,585个JIRA问题中,有1,868个由Oracle完成,而717个由Java社区其他成员贡献。Oracle感谢在Amazon、ARM、Azul、Google、Huawei、IBM、Intel、ISCAS、Red Hat、Rivos、SAP和Tencent等组织工作的开发者的显著贡献。我们也感谢来自Bellsoft、Loongson等较小组织以及独立开发者的贡献,他们共同贡献了Java 21中8%的修复。

此外,通过OpenJDK质量外展计划,我们还要感谢以下提供了优秀反馈的FOSS项目,他们测试了Java 21早期访问版本,帮助提高了发布质量:

  • Apache Commons
  • Apache ZooKeeper
  • AssertJ
  • BNYM Code Katas
  • JUnit5
  • Karate
  • MyBatis

二、新特性


Java 21 是 Java 平台的 12 个功能版本之一,于 2023 年 9 月 19 日发布。该版本包含了数千项性能、稳定性和安全更新,以及 15 项重大的新特性和增强。

以下是 Java 21 的新功能和增强:

  • Project Amber 项目的六个预览功能:
    • JEP 430:String Templates(字符串模板):允许开发人员在 Java 代码中使用模板来生成字符串,从而简化字符串的编写和维护。
    • JEP 440:Record Patterns(记录模式):允许开发人员使用模式来解构记录类的实例,从而简化数据查询。
    • JEP 441:Pattern Matching for switch(switch 中的模式匹配):允许开发人员在 switch 语句中使用模式匹配,从而简化复杂的数据查询。
    • JEP 443:Unnamed Patterns and Variables(匿名模式和变量):允许开发人员使用匿名模式和变量,从而简化代码的编写和维护。
    • JEP 445:Unnamed Classes and Instance Main Methods(匿名类和实例主方法):允许开发人员使用匿名类和实例主方法来简化简单程序的编写。
  • Project Loom 项目的两个预览功能:
    • JEP 444:Virtual Threads(虚拟线程):允许开发人员使用虚拟线程来编写高性能的并发应用程序。
    • JEP 446:Scoped Values(作用域值):允许开发人员在线程之间共享不可变数据。
  • 其他新特性和增强:
    • 改进了 Java 代码的性能、稳定性和安全性。
    • 新增了对新的硬件平台的支持。
    • 新增了对新的 API 和工具的支持。

以下是 Java 21 中的一些值得关注的新特性和增强:

  • String Templates 功能简化了字符串的编写和维护,使开发人员可以更轻松地在 Java 代码中生成复杂的字符串。
  • Record Patterns 功能简化了数据查询,使开发人员可以更轻松地从记录类中提取数据。
  • Pattern Matching for switch 功能简化了复杂的数据查询,使开发人员可以更轻松地从 switch 语句中提取数据。
  • Virtual Threads 功能提高了并发应用程序的性能,使开发人员可以更轻松地编写高性能的并发应用程序。
  • Scoped Values 功能简化了线程间数据共享,使开发人员可以更轻松地在线程之间共享不可变数据。

官网介绍地址:The arrival of java 21! – Inside.java

Project Amber

JEP 430: String Templates (Preview):字符串模板

JEP 440: Record Patterns:
JEP 441: Pattern Matching for switch:交换机的模式匹配

JEP 443: Unnamed Patterns and Variables (Preview)
JEP 445: Unnamed Classes and Instance Main Methods (Preview)

Project Loom

JEP 444: Virtual Threads:虚拟线程
JEP 446: Scoped Values (Preview)

JEP 453: Structured Concurrency (Preview)

Project Panama

JEP 442: Foreign Function & Memory API (外部函数和内存API)

JEP 448: Vector API

Core Libraries(核心库)

JEP 431: Sequenced Collections

Performance Updates(性能更新)

JEP 439: Generational ZGC

JEP 452: Key Encapsulation Mechanism API


 

三、吃瓜群众

他强由他强,清风拂山冈;

他横由他横,明月照大江;

他发任他发,我用Java8。

----总体来总Java也自带支持协程了。


如果文章对你有帮助,欢迎关注+点赞!!!

一、引言

2023年9月19日,Oracle公司正式发布了JDK 21,这是按照六个月发布周期准时交付的第12个功能版本。

这种可预测性让开发者能够轻松地管理他们对创新的采用,感谢稳定的改进流。JDK 21不仅包含了数千个性能、稳定性和安全性更新,还提供了几十个新功能和增强,其中15个增强足够重要,值得拥有自己的JDK增强提案—JEP,涵盖了六个预览功能和一个孵化器功能。

图表显示自Java 8以来每个版本的功能数量 Java的性能、稳定性和安全性的提升,使其继续成为世界上最受欢迎的编程语言。

此外,Oracle将为Java 21提供至少八年的长期支持。这种延长的支持期限让组织能够以最小的维护成本,让应用程序更长时间地保持在生产环境中,并且可以按照他们自己的节奏进行迁移。根据客户反馈和Java生态系统中的使用情况,Oracle还宣布将Java 11的长期支持延长至至少2032年1月,从Oracle那里获得至少八年以上的支持和更新。

与以前的版本一样,Java 21由Oracle与OpenJDK 社区中许多个人和组织的贡献一起构建。Java在已修复的24,196个JIRA问题中,有17,288个由Oracle工作人员完成,而6,908个由其他组织工作人员或个人开发者贡献。通过查看问题并从受让人那里收集组织数据,得到以下图表,显示了在Java中赞助贡献开发的组织:

图表显示每个组织的修复数量 在Java 21中,标记为已修复的2,585个JIRA问题中,有1,868个由Oracle完成,而717个由Java社区其他成员贡献。Oracle感谢在Amazon、ARM、Azul、Google、Huawei、IBM、Intel、ISCAS、Red Hat、Rivos、SAP和Tencent等组织工作的开发者的显著贡献。我们也感谢来自Bellsoft、Loongson等较小组织以及独立开发者的贡献,他们共同贡献了Java 21中8%的修复。

此外,通过OpenJDK质量外展计划,我们还要感谢以下提供了优秀反馈的FOSS项目,他们测试了Java 21早期访问版本,帮助提高了发布质量:

  • Apache Commons
  • Apache ZooKeeper
  • AssertJ
  • BNYM Code Katas
  • JUnit5
  • Karate
  • MyBatis

二、新特性


Java 21 是 Java 平台的 12 个功能版本之一,于 2023 年 9 月 19 日发布。该版本包含了数千项性能、稳定性和安全更新,以及 15 项重大的新特性和增强。

以下是 Java 21 的新功能和增强:

  • Project Amber 项目的六个预览功能:
    • JEP 430:String Templates(字符串模板):允许开发人员在 Java 代码中使用模板来生成字符串,从而简化字符串的编写和维护。
    • JEP 440:Record Patterns(记录模式):允许开发人员使用模式来解构记录类的实例,从而简化数据查询。
    • JEP 441:Pattern Matching for switch(switch 中的模式匹配):允许开发人员在 switch 语句中使用模式匹配,从而简化复杂的数据查询。
    • JEP 443:Unnamed Patterns and Variables(匿名模式和变量):允许开发人员使用匿名模式和变量,从而简化代码的编写和维护。
    • JEP 445:Unnamed Classes and Instance Main Methods(匿名类和实例主方法):允许开发人员使用匿名类和实例主方法来简化简单程序的编写。
  • Project Loom 项目的两个预览功能:
    • JEP 444:Virtual Threads(虚拟线程):允许开发人员使用虚拟线程来编写高性能的并发应用程序。
    • JEP 446:Scoped Values(作用域值):允许开发人员在线程之间共享不可变数据。
  • 其他新特性和增强:
    • 改进了 Java 代码的性能、稳定性和安全性。
    • 新增了对新的硬件平台的支持。
    • 新增了对新的 API 和工具的支持。

以下是 Java 21 中的一些值得关注的新特性和增强:

  • String Templates 功能简化了字符串的编写和维护,使开发人员可以更轻松地在 Java 代码中生成复杂的字符串。
  • Record Patterns 功能简化了数据查询,使开发人员可以更轻松地从记录类中提取数据。
  • Pattern Matching for switch 功能简化了复杂的数据查询,使开发人员可以更轻松地从 switch 语句中提取数据。
  • Virtual Threads 功能提高了并发应用程序的性能,使开发人员可以更轻松地编写高性能的并发应用程序。
  • Scoped Values 功能简化了线程间数据共享,使开发人员可以更轻松地在线程之间共享不可变数据。

官网介绍地址:The arrival of java 21! – Inside.java

Project Amber

JEP 430: String Templates (Preview):字符串模板

JEP 440: Record Patterns:
JEP 441: Pattern Matching for switch:交换机的模式匹配

JEP 443: Unnamed Patterns and Variables (Preview)
JEP 445: Unnamed Classes and Instance Main Methods (Preview)

Project Loom

JEP 444: Virtual Threads:虚拟线程
JEP 446: Scoped Values (Preview)

JEP 453: Structured Concurrency (Preview)

Project Panama

JEP 442: Foreign Function & Memory API (外部函数和内存API)

JEP 448: Vector API

Core Libraries(核心库)

JEP 431: Sequenced Collections

Performance Updates(性能更新)

JEP 439: Generational ZGC

JEP 452: Key Encapsulation Mechanism API


 

三、吃瓜群众

他强由他强,清风拂山冈;

他横由他横,明月照大江;

他发任他发,我用Java8。

----总体来总Java也自带支持协程了。


如果文章对你有帮助,欢迎关注+点赞!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栈江湖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值