Java_21
Oracle 最新发布了 Java 的新版本 Java 21,包括数千项性能、稳定性和安全性改进,以及增强的开发功能。这个版本还提供了至少 8 年的长期支持,使组织能够按照自己的节奏进行迁移。更新的功能包括字符串模板、记录模式、虚拟线程、分代 ZGC 垃圾收集器等,旨在提高开发人员的生产力和应用程序性能。
新版本在 Oracle CloudWorld 展示,提供了 15 个 JDK 增强提案,旨在改进 Java 语言并提高平台的性能、稳定性和安全性
延长的长期支持路线图使客户能够按自己的节奏进行迁移
拉斯维加斯,2023 年 9 月 19 日
Oracle 今天宣布了 Java 21 (opens new window) 的可用性,这是全球最流行的编程语言和开发平台的最新版本。Java 21(Oracle JDK 21)提供了数千项性能、稳定性和安全性改进,包括能够帮助开发人员提高生产力并推动组织创新和增长的平台增强功能。Oracle 正在本周(9 月 18 日至 21 日)在拉斯维加斯举行的 Oracle CloudWorld (opens new window) 上展示 Java 21 的最新功能,同时也可以在线访问 oracle.com/cloudworld (opens new window)。
“Java 继续是世界各地组织和数百万个人使用的强大、可扩展和安全应用程序开发的首选语言和平台”,Oracle Java 平台高级副总裁兼 OpenJDK 管理委员会主席 Georges Saab 表示。“Java 21 中的新增强功能使开发人员能够比以往更快地构建更好的应用程序。此外,商业支持将至少提供 8 年,以使客户可以按照自己的节奏进行迁移。”
最新的 Java 开发工具包(JDK)通过 15 个 JDK 增强提案(JEPs)提供了更新和改进。JDK 21 提供了来自 OpenJDK 项目 Amber 的语言改进(字符串模板、记录模式、开关的模式匹配、未命名的模式和变量以及未命名的类和实例主方法);来自 Project Panama 的增强功能(外部函数和内存 API 以及矢量 API);与 Project Loom 相关的功能(虚拟线程、作用域值和结构化并发);性能更新(分代 ZGC);以及维护和弃用功能(弃用 32 位 x86 端口以准备删除,并准备禁止动态加载代理)。
“尽管目前存在许多编程语言,但 Java 今天仍然无处不在”,RedMonk 的首席分析师和联合创始人 Stephen O’Grady 表示。“随着世界的发展,Java 适应能力将有助于继续发挥其在为开发人员提供价值方面的关键作用。”
Oracle 将为 Java 21 提供至少 8 年的长期支持。这个延长的支持期限使组织能够在最低维护的情况下将应用程序保持在生产环境中,并最终按照自己的条件进行迁移。根据客户反馈和在 Java 生态系统中的使用情况,Oracle 还宣布,对 Java 11 的长期支持已经延长至至少 2032 年 1 月,为客户提供至少 8 年的支持和更新。
Java 21 中提供的重要更新包括:
# Project Amber 功能
字符串模板
记录模式
开关的模式匹配
未命名的模式和变量以及未命名的类和实例主方法
# Project Loom 功能
- JEP 444 (opens new window)**:虚拟线程**:通过引入轻量级虚拟线程到 Java 平台,显着简化了编写、维护和观察高吞吐量并发应用程序的过程。通过使开发人员能够轻松地进行故障排除、调试和分析并发应用程序,并使用现有的 JDK 工具和技术扩展它们,虚拟线程有助于加速应用程序开发。
- JEP 446 (opens new window)**:作用域值(预览)**:在线程内部和跨线程共享不可变数据。这有助于提高开发项目的易用性、可理解性、健壮性和性能。
- JEP 453 (opens new window)**:结构化并发(预览)**:通过引入结构化并发的 API 简化并发编程,有助于促进一种可以消除由于取消和关闭而产生的常见风险(如线程泄漏和取消延迟)的并发编程风格,并提高并发代码的可观察性。这有助于开发人员简化错误处理和取消操作,提高可靠性,并增强可观察性。
# 性能更新
- JEP 439 (opens new window)**:分代 ZGC**:通过扩展 Z 垃圾收集器(ZGC)以维护年轻和老年对象的单独代,提高了应用程序性能。分代 ZGC 通过降低所需堆内存和垃圾收集 CPU 的开销以及减少分配停顿的风险,有助于提高开发人员的生产力。
# 语言更新与改进
- JEP 430 (opens new window)**:字符串模板(预览版)**:通过简化 Java 程序的开发,使得在运行时轻松表达包括计算值的字符串,提高了由用户提供的值构建字符串并传递给其他系统的程序的安全性。此外,增强了混合文本和表达式的表达式的可读性,可以创建不需要经过中间字符串表示的从字面文本和嵌入的表达式计算出的非字符串值。这有助于通过使 Java 语言更可读、更易写和更易维护来提高开发者的生产效率。
- JEP 440 (opens new window)**:记录模式(第三预览版)**:通过将模式匹配扩展到解构记录类的实例,并启用嵌套模式的添加,增强了 Java 语言,使开发者能够将模式匹配扩展到更复杂和可组合的数据查询,提高了生产力。
- JEP 441 (opens new window)**:开关的模式匹配**:通过允许模式出现在 case 标签中,扩展了开关表达式和语句的表现力和适用性。此外,通过要求模式开关语句覆盖所有可能的输入值,增加了开关语句的安全性,所有现有的开关表达式和语句可以继续编译而无需更改,并具有相同的语义。这有助于通过使 Java 语言更语义化,使复杂的面向数据的查询可以简洁而安全地表达,从而简化和提高项目的可靠性。
- JEP 443 (opens new window)**:无名模式和变量(预览版)**:通过允许无名模式匹配记录组件而不声明组件的名称或类型,以及可以初始化但不能使用的无名变量,增强了 Java 语言。这有助于简化开发过程,提高记录模式的可读性,改善所有代码的可维护性。
- JEP 445 (opens new window)**:无名类和实例主方法(预览版)**:有助于简化和改进 Java 语言的可访问性,以便教育工作者可以逐步引入编程概念。通过避免引入单独的初学者 Java 方言和单独的初学者工具链,学生程序可以使用与编译和运行任何 Java 程序相同的工具来编译和运行,从而帮助学生以简洁的方式编写基本程序,并随着他们的技能增长而逐渐增加他们的代码。这有助于提高学生开发者的生产效率,使他们能够在不需要理解为大型程序设计的语言特性的情况下编写第一个程序。
# 维护和弃用功能
弃用 32 位 x86 端口以准备删除
准备禁止动态加载代理
# Project Panama 预览功能
- JEP 442 (opens new window)**:外部函数和内存 API(第三预览版)**:引入了一个 API,使 Java 程序能够与 Java 虚拟机(JVM)之外的代码和数据进行交互。通过高效地调用外部函数(即不在 Java 虚拟机[JVM]内的代码)以及安全地访问外部内存(即不由 JVM 管理的内存),新的 API 使 Java 程序能够调用本机库并处理本机数据,而无需使用 Java 本机接口。这提高了开发者的易用性、灵活性、性能和安全性。
- JEP 448 (opens new window)**:矢量 API(第六孵化器)**:引入了一个 API,用于在支持的 CPU 架构上可靠地在运行时编译为矢量指令的矢量计算。这有助于开发者通过提供访问广泛的矢量计算的 API 来提高项目的性能。
Java 21 的发布是 Oracle 工程师与全球 Java 开发者社区通过 OpenJDK 和 Java 社区流程(JCP)进行广泛合作的结果。除了新的增强功能外,Java 21 还得到了 Java 管理服务 (opens new window)(JMS)的支持,这是 Oracle Cloud 基础设施 (opens new window)(OCI)的本机服务,提供了一个统一的控制台和仪表板,帮助组织在本地或任何云上管理 Java 运行时和应用程序。有关 Java 21 中功能的更多详细信息,请阅读 Java 21 技术博客文章 (opens new window)。
# 以云创新支持全球 Java 生态系统
Java 在 OCI 云上的部署为开发者提供了最佳的性能、效率和创新,而 OCI 是第一个支持 Java 21 的超大规模云之一。此外,通过在 OCI 上运行 Java,客户可以在规模上获得成本节省。Oracle Java SE、Oracle GraalVM 以及 Java SE 订阅企业性能包都可以在 OCI 上免费使用,使开发者能够构建和部署运行更快、更好、成本性能优化的应用程序。
Oracle Java 通用 SE 订阅是一种按需付费的服务,为客户提供一流的支持,包括对其整个 Java 组合的排查支持、GraalVM 的授权、Java SE 订阅企业性能包的授权、Java 管理服务的高级功能访问权限,以及根据业务需求自由升级的灵活性。这有助于 IT 组织管理复杂性、控制成本并降低安全风险。
# 全球 Java 社区拥抱 Java 21
“Java 21 是 Java 的一次重大发布,虚拟线程将影响我们如何开发和部署异步应用程序,从微服务到企业应用程序都会受到影响,” Agile Developer, Inc. 创始人 Dr. Venkat Subramaniam 表示。“通过很少的编码工作,开发者的应用程序可以扩展以支持大量的 IO 操作和服务调用,而不会对资源造成不合理的需求。规模扩展以降低成本对于依赖 Java 的组织来说是一个巨大的胜利。”
“我对 Java 21 中的‘未命名类和实例主方法’预览功能感到兴奋,” Drew 大学教授 Barry Burd 表示。“在我的入门课程中,学生可以快速而轻松地开始,不会感到困惑或繁琐。在我的书中,我可以呈现完整的示例,而无需冗长的代码。最好的部分是这些新功能与 Java 的整体设计哲学相契合。未命名的类正在加入它们的未命名包和模块兄弟姐妹的行列。而且它还具备向后兼容性。”
“Java 21 中的序列化集合功能对开发社区来说是一个很好的补充。开发者不再需要担心在 JUnit 测试中意外依赖于遇到的顺序,然后在构建服务器、升级或其他地方失败,” Java Champion Jeanne Boyarsky 说道。“有了序列化集合,这个顺序将被定义,这意味着不会再有意外。”
# 扩展 Dev.java,加入 Java Playground 和社区贡献
Dev.java (opens new window) 是 Java 开发者的官方网站,今天我们宣布增加了一个 Java Playground,并有新的社区贡献加入内容目录。
Java Playground 是一个在线沙盒,允许用户在无需本地运行时或集成开发环境的情况下输入和运行小的 Java 代码片段。开发者现在可以立即尝试 Java 21 的新功能,所有这些都可以在浏览器中完成,由 OCI 提供支持。
Dev.java 有数百个高质量的 Java 教程,适用于各种技能水平,由 Oracle 的 Java 团队编写。现在,Dev.java 还通过 Java GitHub 组织 (opens new window)内的新公共存储库接受社区贡献。
开发者已经可以在社区贡献 (opens new window)中找到来自行业杰出人士的贡献,如 Dr. Venkat Subramaniam (opens new window)、Cay Horstmann (opens new window)、Jeanne Boyarsky (opens new window)、Heinz Kabutz (opens new window)、Paul Anderson (opens new window) 和 Gail Anderson (opens new window) 等。
要了解更多关于 Java 及其全球生态系统的信息,请访问:
- Dev.java (opens new window): 学习 Java 的官方门户
- Inside.java (opens new window): 来自 Oracle Java 团队成员的新闻和观点
- Java YouTube (opens new window): Java 学习视频的官方 YouTube 门户
# 更多资源
- 下载 Oracle JDK 21 (opens new window)
- 阅读 Java 21 技术博客 (opens new window)
- 了解更多关于 Java 管理服务 (opens new window)
- 了解更多关于 Oracle Java SE 通用订阅 (opens new window)
# 联系信息
# Drew Smith
- Oracle
- drew.j.smith@oracle.com
- 415.336.1103
# 关于 Oracle
Oracle 提供集成套件的应用程序以及在 Oracle Cloud 中的安全、自主的基础设施。有关 Oracle(NYSE: ORCL)的更多信息,请访问我们的网站。 (opens new window)
# 关于 Oracle CloudWorld
Oracle CloudWorld 是 Oracle 举办的最盛大的全球客户和合作伙伴庆祝活动。加入我们,探索您需要解决最重大业务挑战的见解,提升您的技能、知识和人际关系,并从那些构建和使用云基础设施、数据库、应用程序和开发者技术,包括 Java 的专业人士那里学到更多。有关注册、现场主题演讲、会议详细信息、新闻等,请访问 oracle.com/cloudworld (opens new window) 或 oracle.com/news (opens new window)。
# 前瞻性陈述声明免责声明
本文中涉及 Oracle 未来计划、期望、信仰和意图的声明均为“前瞻性陈述”,受到实质性风险和不确定性的影响。许多因素可能影响 Oracle 当前的期望和实际结果,并可能导致实际结果出现实质性差异。有关这些因素和影响 Oracle 业务的其他风险的讨论,包括 Oracle 提交给美国证券交易委员会(SEC)的报告中,包括最近的 10-K 和 10-Q 表格报告中的“风险因素”部分。这些报告可在 SEC 的网站或 Oracle 的网站上找到,网址为 http://www.oracle.com/se/investor (opens new window)。本文中的所有信息截至 2023 年 9 月 19 日均为最新,Oracle 不承担根据新信息或未来事件更新任何声明的责任。
# 商标
Oracle、Java、MySQL 和 NetSuite 均为 Oracle Corporation 的注册商标。NetSuite 是第一家云计算公司,开创了云计算的新时代。
# 参考
Oracle Releases Java 21 and Extends Support Roadmap (opens new window)