Java SE 24 已经发布。了解其新功能、改进等。

Java平台,标准版

经过六个月的开发, Oracle 宣布发布 Java SE 24基于开源 OpenJDK 项目,保持向后兼容性,以便大多数以前开发的项目无需修改即可继续运行。

与长期支持 (LTS) 版本不同, Java SE 24 是一个常规支持版本, 这意味着直到下一个版本才会更新。对于那些寻求长期稳定性的人来说,Java SE 21 和 Java SE 17 将分别继续支持到 2031 年和 2029 年。此外,Java SE 8 LTS 扩展支持将持续到 2030 年,而 Java SE 11 将持续有效到 2032 年。

改进和新功能

在 Java SE 24 推出的新版本中, 最重要的改进 是介绍 Shenandoah 垃圾收集器的实验性生成模式 (旨在分别处理新旧对象)。这种新模式提高了清理短暂对象的效率,优化了内存使用情况,并在不同负载下提供更稳定的性能。

另一个引人注目的新颖之处是 HotSpot JVM 中对紧凑对象头的实验性支持,在 96 位系统上将其大小从 64 位减少到 64 位。这种优化有助于减少堆大小并提高内存缓存的效率。

垃圾收集器 G1 也经过重新设计进行了优化 监视应用程序对内存的访问的屏障。现在,屏障扩展在 C2 JIT 编译器的编译过程的稍后阶段执行,根据应用程序类型,可将其开销减少高达 20%。

安全和加密改进

Java SE 24 引入了以下 API: 加密密钥的导出(KDF), 允许生成附加密钥 来自一个密钥和一组任意数据。该 API 仍处于预览阶段,它加强了平台内密钥管理的安全性。

另外, 添加了关于使用 API 的警告 Java 本机接口和外部函数及内存,为未来实施完整性模式做准备,该模式将限制对本机代码的默认访问。通过 sun.misc.Unsafe 类使用外部内存访问方法时也会启用警告,建议迁移到 VarHandle API。

另一方面,在 Java SE 24 中 支持 ML-KEM 加密算法 和 ML-DSA (设计为 抵御量子计算攻击)。这些算法基于网络理论问题,确保传统计算机和量子计算机上的解决时间等效。

Java 安全管理器自从浏览器插件支持消失后就不再使用,现已被永久删除。

优化

JVM HotSpot 现在允许提前预加载和链接类,大大加快了应用程序的启动速度。首次运行时,类的状态会被缓存,以方便下次启动时加载。

同时, Scoped Values 的实现已得到改进,现在允许在线程之间共享不可变数据 更高效,取代传统的线程局部变量机制。当同时处理数百万个虚拟线程时这尤其有益。

另一个新颖之处是 阻塞状态下虚拟线程的优化。在此版本中,被阻止的虚拟线程释放其平台线程,允许其他线程重用它,从而提高多线程使用率高的系统的可扩展性。

其他突出的变化:

  • Stream API 的新扩展,允许您定义自定义中间操作。
  • 模式匹配引擎已经得到增强,可以支持 switch 表达式和 instanceof 运算符中的原始类型(int、byte、char 等)。
  • 添加了结构化并发 API 的第四个预览版本,通过将不同线程上的任务视为单个执行单元,简化了多线程应用程序的开发。
  • 引入了一种更简单的声明类和定义 main() 方法的方法,无需定义具有静态方法的公共类。
  • 添加了类文件 API,允许您更轻松、更以编程方式解析、生成和转换 Java 类文件。

最后,如果您有兴趣能够了解更多,可以在 以下链接。

下载 Java SE 24

对于那些有兴趣安装新版本 Java SE 24 的人,您应该知道编译(JDK、JRE 和 Server JRE)已经准备好 Linux、Windows 和 macOS。