Java SE 26 和 OpenJDK 26 版本发布。一个将 JavaScript 和 Python 支持集成到 JVM 中的项目。

经过六个月的开发,Oracle 发布了 Java SE 26(Java 平台标准版 26),它以开源 OpenJDK 项目作为参考实现。除了移除一些已弃用的功能外,Java SE 26 保持了与 Java 平台先前版本的向后兼容性——大多数先前编写的 Java 项目在新版本下都能正常运行。Java SE 26(JDK、JRE 和 Server JRE)的即用型构建版本已准备就绪。 Linux (x86_64,AArch64), Windows (x86_64)和 macOS (x86_64, AArch64)。Java SE 26 参考实现由 OpenJDK 项目开发,完全开源,采用 GPLv2 许可证,并带有 GNU ClassPath 例外,允许与商业产品进行动态链接。

Java SE 26 被归类为常规支持版本,其更新将持续发布直至下一个版本发布。长期支持 (LTS) 分支应为 Java SE 25、Java SE 21 或 Java SE 17,其更新将分别持续发布至 2033 年、2031 年和 2029 年(通常可分别持续到 2030 年 9 月、2028 年 9 月和 2026 年 9 月)。Java SE 8 LTS 分支的扩展支持将持续到 2030 年,Java SE 11 的扩展支持将持续到 2032 年。

Java SE 26(1、2、3、4)中的变更包括:

  • 使用深度反射修改标记为“final”关键字的字段时,会发出警告。未来的计划包括默认禁用不安全的语言特性,以及(除其他事项外)使标记为 final 的字段完全不可变,从而移除通过深度反射(反射 API)修改它们的变通方法。
  • 用于在浏览器中运行 Java 应用程序的 Applet API(java.applet.Applet*、javax.swing.JApplet)已被移除。该 API 在 Java 浏览器插件停止维护并于 2021 年被弃用后也随之过时。
  • 现在已实现与任何垃圾回收器(包括 ZGC)配合使用预先缓存 (AOT)。此项更改支持使用通用的、与垃圾回收器无关的格式将缓存的 Java 对象顺序加载到内存中,而不是直接将特定的缓存表示映射到内存。使用 AOT 缓存可以缩短启动时间并加快 HotSpot 虚拟机的预热速度。
  • HTTP 客户端 API 已更新,支持 HTTP/3 协议,允许应用程序和库通过 HTTP/3 访问服务器,只需进行最少的代码更改。
  • 通过减少将应用程序线程与垃圾回收器线程同步所需的锁,提高了 G1 垃圾回收器的性能。
  • 提出了使用 PEM(隐私增强邮件)格式对包含加密密钥、证书和证书吊销列表的对象进行编码和解码的 API 的第二个草案。
  • 结构化并发 API 第六版草案已发布供测试,该 API 通过将运行在不同线程上的多个任务视为一个单元,简化了多线程应用程序的开发。
  • Lazy Constants API 的第二个预览版已发布,用于处理包含不可变数据且在 JVM 中被视为常量的对象。该 API 会对这类对象应用类似于带有 `final` 关键字的字段的性能优化。与 `final` 不同,新的 API 将常量值的创建与其初始化分离,保证一个值只能初始化一次,从而缩短程序启动时间,并使之前仅在 JDK 内部代码中使用的常量折叠优化能够在用户代码中使用。 class Application { // 之前: // static final UserService USERS = new UserService(); // 现在: static final StableValue USERS = StableValue.of(); public static UserService users() { return USERS.orElseSet(UserService::new); } }
  • 模式匹配引擎引入了第四版草案,允许在所有模板类型、instanceof 运算符和 switch 代码块中使用基本类型(int、byte、char 和其他非对象基类型)。 switch (x.getStatus()) { case 0 -> "okay"; case 1 -> "warning"; case 2 -> "error"; case int i -> "unknown status: " + i; } if (i instanceof byte b) { … b … }
  • 本文提出了向量 API 的第十一个测试实现。它提供了使用 x86_64 和 AArch64 处理器向量指令执行向量计算的函数,并允许对多个值进行同时操作(SIMD)。与 HotSpot JIT 编译器对标量运算的自动向量化不同,新的 API 允许对并行数据处理的向量化进行显式控制。

Oracle 还宣布了“底特律计划”(Project Detroit),该计划将作为 OpenJDK 的一部分进行开发,旨在提高 Java、JavaScript 和 Python 之间的可移植性。该计划的目标是将 V8 JavaScript 引擎和 CPython 解释器集成到 JVM 进程中。Oracle 此前曾开发过运行在 JVM 之上的 Nashorn JavaScript 引擎,但由于主要生态系统与 V8 引擎紧密相关,开发独立的 JavaScript 实现难度较大,因此终止了该项目。

此外,我们很高兴地宣布发布用于创建图形用户界面应用程序的 JavaFX 26 平台更新。同时,支持运行 JavaScript (Node.js)、Python、Ruby、R、任何 JVM 语言(Java、Scala、Clojure、Kotlin)以及可生成 LLVM 位代码的语言(C、C++、Rust)应用程序的 GraalVM 26 通用虚拟机也预计将在未来几小时内发布。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster