Java SE 27 和 OpenJDK 27 发布

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

Java SE 27 被归类为常规支持版本,其更新将持续发布直至下一个版本发布。长期支持 (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 27(1、2、3、4)中的变更包括:

  • 默认情况下,所有环境都使用 G1(垃圾优先)垃圾回收器,该回收器以前用于服务器系统。G1 针对具有大内存容量的多处理器系统进行了优化,旨在平衡可预测的延迟和高吞吐量。在运行过程中,G1 将内存划分为许多小的区域,并优先处理那些包含更多未使用对象和更少活跃访问数据的区域。
  • HotSpot JVM 默认使用紧凑型对象头。在 64 位系统上,对象头大小已从 96 位减少到 64 位,从而降低了内存消耗并提高了数据进入处理器缓存的概率。在 SPECjbb2015 基准测试中,内存消耗降低了 22%,CPU 负载降低了 8%,垃圾回收操作次数降低了 15%。JSON 解析器的测试运行时间缩短了 10%。
  • TLS 1.3 实现增加了对混合密钥协商方案的支持,这些方案结合了抗量子 ML-KEM(CRYSTALS-Kyber)算法和经典的 ECDHE 椭圆曲线算法:X25519MLKEM768(采用 X25519 曲线的 ECDHE + ML-KEM-768)、SecP256r1MLKEM76(采用 secp256r1 曲线的 ECDHE + ML-KEM-768)和 SecP384r1MLKEM1024(采用 secp384r1 曲线的 ECDHE + ML-KEM-1024)。在 javax.net API 中。SSL 这些方案默认启用,使用时无需对应用程序进行任何更改。
  • 用于性能监控、分析和诊断的 JDK Flight Recorder (JFR) 工具,现在支持对保存的诊断信息中的命令行参数、环境变量初始值和系统属性进行清理。此项更改可防止被分析进程处理的敏感数据(例如通过环境变量传递的授权令牌和 API 访问密钥)泄露。
  • Lazy Constants API 的第三个预览版已实现,用于处理包含不可变数据并在 JVM 中被视为常量的对象。此类对象应用了类似于带有“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 草案已发布供测试,该 API 通过将运行在不同线程上的多个任务视为一个单元,简化了多线程应用程序的开发。
  • Vector API 的第十二个测试实现已完成。该 API 提供使用 x86_64 和 AArch64 处理器向量指令执行向量计算的函数,并支持对多个值进行同时操作(SIMD)。与 HotSpot JIT 编译器对标量运算的自动向量化不同,新的 API 允许显式控制并行数据处理的向量化过程。
  • API 的第三个草案现已发布,用于使用 PEM(隐私增强邮件)格式对包含加密密钥、证书和证书吊销列表的对象进行编码和解码。

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

来源: opennet.ru

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