2024年3月19日,Oracle正式发布Java22。
这是备受欢迎的编程语言和开发平台推出的全新版本。
Java 22 (Oracle JDK 22) 在性能、稳定性和安全性方面,进行了数千种改进,包括对Java 语言、其API 和性能,以及Java 开发工具包 (JDK)中工具的增强功能,以帮助开发人员提高工作效率,推动企业加速创新和发展。
全新的 Java 版本提供 12 个 JDK 增强建议,有助于优化 Java 语言并提升开发平台的性能、稳定性和安全性。
1 Project Amber 的特性
1.1 JEP 447
支持开发人员自由地表达构造器的行为。
对于未引用正在创建的实例的语句,该语句也可以在调用显式构造器之前出现,让开发人员可以更自然地放置逻辑。
1.2 JEP 456
通过未命名的变量和模式来增强 Java 语言。
在必须使用变量声明或嵌套模式,但又从未使用过的情况下,开发人员可以使用这些变量和模式来提高生产力。
1.3 JEP 459
使包含运行时计算值的字符串更容易表达,简化 Java 程序的开发工作,同时提高将用户提供的值编写成字符串,并将字符串传递给其他系统的程序的安全性。
1.4 JEP 463
通过 Java 编程入门教程,学生无需了解为大型程序而设计的语言功能,即可顺利编写第一个程序,加快了上手速度。
通过此特性,教育工作者可以循序渐进地介绍概念,学生也可以编写简化的单类程序声明,并随着个人技能的提升,无缝扩展程序并使用更高级的功能。
2 Project Loom 的特性
2.1 JEP 462
通过引入用于结构化并发的 API,帮助开发人员简化错误处理和取消,并提高可观测性,进而鼓励更多人选择并发编程。
2.2 JEP 464
支持开发人员在线程内和线程之间共享不可变数据,从而提高项目的易用性、可理解性、性能和稳健性。
3 Project Panama 的特性
3.1 JEP 454
新推出的 API 使 Java 程序更容易与 Java 运行时之外的代码和数据互操作,从而帮助开发人员提高易用性、灵活性、安全性和性能。
通过有效调用外部函数(即 Java Virtual Machine (JVM) 之外的代码),以及安全地访问外部内存(即不受 JVM 管理的内存),这个新的 API 支持 Java 程序在无需 Java Native Interface 的情况下调用本地库和处理原生数据。
3.2 JEP 460
引入 API来表达向量计算,在运行时可靠地编译为支持的 CPU 架构上的向量指令,使开发人员获得优于等效标量计算的性能。
4 核心库和工具功能
4.1 JEP 457
通过提供用于解析、生成和转换 Java 类文件的标准 API,帮助开发人员提高工作效率。
4.2 JEP 458
支持开发人员通过增强 Java 应用启动器,选择是否以及何时需要配置构建工具,从而运行作为多个 Java 源代码文件提供的程序。
4.3 JEP 461
通过增强 Stream API 来支持自定义中间操作,让流管道能以比现有内置中间操作更轻松的方式转换数据,从而帮助开发人员提高工作效率。
5 性能更新
5.1 JEP 423
在原本需要暂停收集器的本机库调用期间,允许进行某些资源回收,有助于减少延迟。
其中的原理是,在本机库调用期间,对需要禁止的对象以及仅“固定”包含这些对象的区域进行跟踪。如此一来,即使是在原本会禁止本机库调用的期间,未固定的区域也可以继续正常进行资源回收。
Java 22 是 Oracle 与全球 Java 开发人员社区成员通过 OpenJDK 社区 和 Java Community Process (JCP) 共同合作的成果。
Java 22 除了推出了新的增强功能和特性,也获得 Java Management Service (JMS) 的支持,这是一项新的 Oracle 云基础设施远程软件服务(Oracle Cloud Infrastructure, OCI) 原生服务,提供统一的控制台和仪表盘,帮助企业管理本地或云端的 Java 运行时和应用。