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

news2024/12/23 1:46:37

一、引言

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也自带支持协程了。


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1024855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

比特币上的可验证延迟函数

可验证延迟函数 (VDF) 是一种需要大量 顺序计算 来评估但可以快速验证的函数。我们首次在比特币上实现了它。VDF 作为密码学技术可用于构建大量新应用程序,例如公共随机信标、计算时间戳和数据复制证明。 VDF 场景 链上随机信标 在区块链中很难实现随机性&#xf…

php生成二维码合成文字、背景图并保存本地图片

目录 1、实现效果,二维码二维码合成文字、背景图 2、下载并引入qrcode 3、创建static文件夹下载字体和背景图到这 4、创建test2.php,合成代码 1、实现效果,二维码二维码合成文字、背景图 2、下载并引入qrcode 1、到phpqrcpde官网下载类库…

UltraEdit 22 编辑器 for Mac

UltraEdit 是一款功能强大的文本编辑器和源代码编辑器。它具有多种功能,适用于程序员、网站开发人员和其他需要处理大量文本内容的用户。 UltraEdit 提供了正则表达式搜索和替换功能,可以快速查找和修改文本中的特定内容。它还支持多文件编辑和多窗口布局…

掌握文案新技能,拓世AI让你成为朋友圈文案达人

“人生如戏,戏如人生”,这是一句缥缈却真实的话,我们在生活中扮演着各种角色,经营自己的人生。如同美国社会学家戈夫曼提出的“拟剧论”:他将社会和人生比作一个大舞台,我们都在关心如何在众多观众面前打造…

Linux动态库

定义:动态函数库,是在程序执行时动态(临时)由目标程序去调用 优点: 调用时不复制,程序运行时动态加载到内存,供程序调用,系统只加载一次,多个程序可以共用,…

百亿、补贴这种低价怎么控

随着电商平台流量竞争的激烈演变,越来越多的促销形式进入人们的眼球,而店铺最简单的营销就是通过价格,所以低价销售成了各平台吸引消费者的方式,百亿补贴因为其独特的属性,与平台挂钩,通过“全网最低价”的…

VB在窗体中显示1000以内的完数

VB在窗体中显示1000以内的完数 在窗体中显示1000以内的完数(如果一个整数的所有因子(包括1,但不包括本身)之和与该数相等,则称这个数字为完数。例如6123,所以6是一个完数) Private Function Is…

【前端知识】Three 学习日志(五)—— 点光源辅助观察

Three 学习日志(五)—— 点光源辅助观察 一、引入点光源辅助观察 // 光源辅助观察 const pointLightHelper new THREE.PointLightHelper(pointLight, 10); scene.add(pointLightHelper);二、改变点光源位置 // 点光源位置 pointLight.position.set(2…

[补题记录] Atcoder Beginner Contest 308(C~E)

URL:https://atcoder.jp/contests/abc308 目录 C Problem/题意 Thought/思路 Code/代码 D Problem/题意 Thought/思路 Code/代码 E Problem/题意 Thought/思路 Code/代码 C Problem/题意 给出n个(a,b)数对&#xff…

短视频矩阵系统源代码开发搭建分享--代码开源SaaS

一、什么是短视频矩阵系统? 短视频矩阵系统是专门为企业号商家、普通号商家提供帐号运营从流量 到转化成交的一站式服务方案,具体包含:点赞关注评论主动私信 ,评论区回复,自动潜客户挖掘,矩阵号营销&#x…

H3C ER G2系列路由器敏感信息泄露漏洞

声明 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 一、产品介绍 H3C ER2200G2是H3C推出的新一代高性能企业级路由器&#…

【Vue】模板语法,事件处理器及综合案例、自定义组件、组件通信

一、事件处理器 我们之前事件监听可以使用v-on 指令 1、事件修饰符 在Vue中我们通过由点(.)表示的指令后缀来调用修饰符,比如: .stop:阻止事件冒泡。当事件触发时,该修饰符将停止事件进一步冒泡到父元素。相当于调用了 event.stop…

CoreData 在新建或更新托管对象中途发生错误时如何恢复如初?

问题现象 在 CoreData 支持的 App 中,当我们新建或更新托管对象到一半突然出现错误时,应该禁止任何已发生的改变被写入内存或数据库中。不过,有时仍会出现始料未及的“意外”: 从上面的演示可以看到:即使在 Item 对象新建和更新途中出现错误后不执行后续的保存操作,但界…

决策树(中):数据挖掘十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

多通道振弦数据记录仪隧道中安全监测应用方案

多通道振弦数据记录仪隧道中安全监测应用方案 近年来,随着城市化进程的加速推进,隧道建设越来越普遍。然而,隧道建设也带来了一系列安全问题,如地质灾害、水文灾害、交通事故、火灾等。因此,对隧道的安全监测非常重要…

20230920研发面经整理

1.cpp中的虚函数和虚函数表 C中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数 虚函数表是指在每个包含虚函数的类中都存在着一个函数地址的数组。当我们用…

免费好用bpm平台,实现生产管理系统

1.什么是生产管理系统 生产制造管理系统主要是以生产制造管理为核心,其管理功能包括产品结构设置(BOM)生产计划、加工、领料、质检、库存、成本核算等。通过信息化解决行业管理问题,满足各企业科学管理的需求,并为制造…

Ubuntu上线一个JAVA环境微服务架构的系统

项目背景: 项目目的: 项目架构: 配置环境: 流程: 1、系统安装 更改root密码 sudo passwd root 设置root密码123 切换用户 su root 输入root密码123 2、开启root远程ssh 编辑配置文件 vi /etc/ssh/sshd_config 更改以下行 #PermitRootLogin prohibit-passwor…

【BeanTrimUtil】通过反射去除JavaBean中String类型数据的空格:一行代码搞定整个Bean的字符串去空!

【原文地址】 https://blog.csdn.net/qq_36170500/article/details/107250282 简化不必要的代码逻辑纯原生环境亦可运行 import java.lang.reflect.Field; import java.lang.reflect.Method;/*** author zhoudeshui v1.1* Desc 版权声明:本文为CSDN博主「一个人的编…

公众号迁移线上公证靠谱吗?

公众号账号迁移的作用是什么?只能变更主体吗?微信公众平台的帐号迁移功能可将原公众号的粉丝、文章素材、违规记录、留言功能、名称等迁移至新的公众号。通过迁移可以实现公众号的公司主体变更、粉丝转移、开通留言功能、服务号转为订阅号等作用。因此不…