前言
2024年3月19日,Oracle正式发布Java22。
这是备受欢迎的编程语言和开发平台推出的全新版本。Java 22 (Oracle JDK 22) 在性能、稳定性和安全性方面,进行了数千种改进,包括对Java 语言、其API 和性能,以及Java 开发工具包 (JDK)中工具的增强功能,以帮助开发人员提高工作效率,推动企业加速创新和发展。
全新的 Java 版本提供 12 个 JDK 增强建议,有助于优化 Java 语言并提升开发平台的性能、稳定性和安全性。
一 Project Amber 的特性
1.1 JEP 447
支持开发人员自由地表达构造器的行为。对于未引用正在创建的实例的语句,该语句也可以在调用显式构造器之前出现,让开发人员可以更自然地放置逻辑。
1.2 JEP 456
通过未命名的变量和模式来增强 Java 语言。在必须使用变量声明或嵌套模式,但又从未使用过的情况下,开发人员可以使用这些变量和模式来提高生产力。
1.3 JEP 459
使包含运行时计算值的字符串更容易表达,简化 Java 程序的开发工作,同时提高将用户提供的值编写成字符串,并将字符串传递给其他系统的程序的安全性。
1.4 JEP 463
通过 Java 编程入门教程,学生无需了解为大型程序而设计的语言功能,即可顺利编写第一个程序,加快了上手速度。通过此特性,教育工作者可以循序渐进地介绍概念,学生也可以编写简化的单类程序声明,并随着个人技能的提升,无缝扩展程序并使用更高级的功能。
二. Project Loom 的特性
2.1 JEP 462
通过引入用于结构化并发的 API,帮助开发人员简化错误处理和取消,并提高可观测性,进而鼓励更多人选择并发编程。
2.2 JEP 464
支持开发人员在线程内和线程之间共享不可变数据,从而提高项目的易用性、可理解性、性能和稳健性。
三 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.1 JEP 457
通过提供用于解析、生成和转换 Java 类文件的标准 API,帮助开发人员提高工作效率。
4.2 JEP 458
支持开发人员通过增强 Java 应用启动器,选择是否以及何时需要配置构建工具,从而运行作为多个 Java 源代码文件提供的程序。
4.3 JEP 461
通过增强 Stream API 来支持自定义中间操作,让流管道能以比现有内置中间操作更轻松的方式转换数据,从而帮助开发人员提高工作效率。
五. 性能更新
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 运行时和应用。