美国德克萨斯州奥斯汀—2024年3月19日
Oracle
正式发布 Java
22,这是备受欢迎的编程语言和开发平台推出的全新版本。Java
22 (Oracle JDK 22)
在性能、稳定性和安全性方面进行了数千种改进,包括对Java
语言、其API
和性能,以及Java
开发工具包
(JDK)中工具的增强功能,以帮助开发人员提高工作效率,推动企业加速创新和发展。
甲骨文公司
Java
平台高级副总裁兼
OpenJDK
管理委员会主席
Georges Saab
表示:“Java
22
新的增强功能让更多开发人员能够快速、轻松地构建和交付功能丰富、可扩展且安全的应用,从而帮助全球各地的组织发展业务。这些增强功能可以简化应用开发,扩大
Java
的覆盖范围,以供不同技术水平的开发人员访问,帮助组织和开发人员创建各种新的应用和服务。”
全新版本的
JDK
更新和改进了 12
项JDK
增强建议
(JEPs)
。JDK
22
将提供OpenJDK
Project Amber
的语言改进(Statements
before super[…]、Unnamed
Variables & Patterns、String
Templates
以及
Implicitly Declared Classes
和
Instance Main Methods);Project
Panama
的改进(Foreign
Function
以及
Memory API
和
Vector API);有关
Project Loom
的特性(Structured
Concurrency
和
Scoped Values);核心库和工具功能(Class-File
API、Launch
Multi-File Source-Code Programs、Stream
Gatherers)以及性能更新(Region
Pinning for G1)。
IDC
软件开发研究副总裁
Arnal Dayaratna
表示:“经过近三十年发展,Java
能够支持各种用例的复杂开发任务,这种能力让该平台变得十分重要。Java
的多功能性和全面的工具集使其能够大规模支持生产级关键任务应用的开发,因此成为了生成式
AI
等创新用例的关键支持技术。”
Java 22
提供的重要更新包括:
Project Amber
的特性
?
JEP 447: Statements before super(…)
— 支持开发人员自由地表达构造器的行为。对于未引用正在创建的实例的语句,该语句也可以在调用显式构造器之前出现,让开发人员可以更自然地放置逻辑。该逻辑需要纳入辅助静态方法、辅助中间构造器或构造器参数中。该特性还将延续现有保证,即允许构造器在类实例化期间按自上而下的顺序运行,以帮助确保子类构造器中的代码不会干扰超类实例化。此外,此特性不需要对
Java Virtual Machine (JVM)
进行任何更改,并且仅依赖于
JVM
的当前能力来验证和执行在构造器中显式调用之前显示的代码。
?
JEP 456: Unnamed Variables & Patterns
— 通过未命名的变量和模式来增强
Java
语言。在必须使用变量声明或嵌套模式,但又从未使用过的情况下,开发人员可以使用这些变量和模式来提高生产力。这种方法可以减少出错的机会,提高记录模式的可读性,并提高代码的可维护性。
?
JEP 459: String Templates(第二预览版)— 使包含运行时计算值的字符串更容易表达,简化
Java
程序的开发工作,同时提高将用户提供的值编写成字符串,并将字符串传递给其他系统的程序的安全性。此外,该特性还可提高参杂了表达式和文本的可读性,创建通过文字文本和嵌入表达式计算的非字符串值,而无需通过中间字符串表示形式传递。
?
JEP 463: Implicitly Declared Classes and Instance Main
Methods(第二预览版)— 通过
Java
编程入门教程,学生无需了解为大型程序而设计的语言功能,即可顺利编写第一个程序,加快了上手速度。通过此特性,教育工作者可以循序渐进地介绍概念,学生也可以编写简化的单类程序声明,并随着个人技能的提升,无缝扩展程序并使用更高级的功能。
Project Loom
的特性
?
JEP 462: Structured Concurrency(第二预览版)— 通过引入用于结构化并发的
API,帮助开发人员简化错误处理和取消,并提高可观测性,进而鼓励更多人选择并发编程。该编程风格可以消除因取消和关闭而产生的常见风险,例如线程泄漏和取消延迟,以此提高并发代码的可观测性。
?
JEP 464: Scoped Values(第二预览版)— 支持开发人员在线程内和线程之间共享不可变数据,从而提高项目的易用性、可理解性、性能和稳健性。
Project Panama
的特性
?
JEP 454: Foreign Function & Memory API
— 新推出的
API 使
Java
程序更容易与
Java
运行时之外的代码和数据互操作,从而帮助开发人员提高易用性、灵活性、安全性和性能。通过有效调用外部函数(即
Java Virtual Machine (JVM)
之外的代码),以及安全地访问外部内存(即不受
JVM
管理的内存),这个新的
API
支持 Java
程序在无需
Java Native Interface
的情况下调用本地库和处理原生数据。
?
JEP 460: Vector API
(七次孵化阶段)— 引入
API来表达向量计算,在运行时可靠地编译为支持的
CPU
架构上的向量指令,使开发人员获得优于等效标量计算的性能。
核心库和工具功能
?
JEP 457: Class-File API(预览版)— 通过提供用于解析、生成和转换
Java
类文件的标准 API,帮助开发人员提高工作效率。
?
JEP 458: Launch Multi-File Source-Code Programs
— 支持开发人员通过增强
Java
应用启动器,选择是否以及何时需要配置构建工具,从而运行作为多个
Java
源代码文件提供的程序。
?
JEP 461: Stream Gatherers(预览版)— 通过增强
Stream API
来支持自定义中间操作,让流管道能以比现有内置中间操作更轻松的方式转换数据,从而帮助开发人员提高工作效率。此特性能够使流管道更灵活、更具表达力,允许自定义中间操作处理大小不限的流,帮助开发人员高效读取、写入和维护
Java
代码。
性能更新
?
JEP 423: Region Pinning for G1
— 在原本需要暂停收集器的本机库调用期间,允许进行某些资源回收,有助于减少延迟。其中的原理是,在本机库调用期间,对需要禁止的对象以及仅“固定”包含这些对象的区域进行跟踪。如此一来,即使是在原本会禁止本机库调用的期间,未固定的区域也可以继续正常进行资源回收。
Java 22
是
Oracle
与全球
Java
开发人员社区成员通过
OpenJDK
社区
和
Java Community Process (JCP)
共同合作的成果。Java
22
除了推出了新的增强功能和特性,也获得 Java
Management Service (JMS)
的支持,这是一项新的 Oracle
云基础设施远程软件服务(Oracle
Cloud Infrastructure, OCI)
原生服务,提供统一的控制台和仪表盘,帮助企业管理本地或云端的
Java
运行时和应用。有关
Java 22
特性的更多信息,请阅读 Java
22
技术博客文章。
云技术创新赋能全球
Java
生态系统
OCI
是率先支持
Java 22
的超大规模云技术之一,部署在
OCI
中的 Java
可提供出色的性能、效率和创新。通过在
OCI
上免费提供
Oracle Java SE、Oracle
GraalVM
和
Java SE Subscription Enterprise Performance Pack,Java
22
助力开发人员构建和部署速度更快、更出色且优化性价比的应用。
Oracle Java Universal SE Subscription
是一个按量计费产品,可为客户提供优秀的支持服务。该产品提供对整个
Java
产品组合的支持、GraalVM
授权、Java
SE Subscription Enterprise Performance Pack、Java
Management Service
增强功能以及按业务计划进行升级的灵活性,有助于
IT
组织管理复杂性、控制成本并降低安全风险。
内容载自:ORACLE网站