Java 17 LTS:Oracle JDK 17 介绍与重要更新 – wiki基地

Java 17 LTS:Oracle JDK 17 介绍与重要更新

Java 17,于2021年9月14日发布,是一个长期支持(LTS)版本,这使其成为企业级应用开发中一个稳定且可靠的选择。作为参考实现的Oracle JDK 17,包含了众多旨在提升性能、稳定性、安全性以及开发者生产力的重要更新和功能。

核心特性与重要更新

Java 17 LTS 引入了多项关键特性,显著改进了语言和平台:

  • 密封类 (Sealed Classes – JEP 409)
    密封类允许开发者精确控制哪些类或接口可以继承或实现一个密封类或接口。这提供了更细粒度的继承控制,有助于在领域建模中实现更严格的设计,确保类型系统的完整性。

  • instanceof 的模式匹配 (Pattern Matching for instanceof – JEP 394)
    此功能在 Java 17 中正式定稿,通过允许在 instanceof 运算符中直接声明模式变量来简化代码,从而消除了对显式类型转换的需求。它使代码更加简洁易读。

  • switch 的模式匹配 (Pattern Matching for switch – JEP 406 – Preview)
    作为预览功能引入,此更新增强了 switch 表达式和语句,使其支持模式匹配。这为处理复杂的条件逻辑提供了更简洁、更富有表现力的方式。

  • 增强型伪随机数生成器 (Enhanced Pseudo-Random Number Generators – JEP 356)
    Java 17 提供了新的接口类型和实现,用于伪随机数生成器 (PRNGs)。这改善了它们之间的互操作性,并允许更灵活地选择算法,以满足不同的随机性需求。

  • 恢复严格浮点语义 (Restore Always-Strict Floating-Point Semantics – JEP 306)
    此项更新通过恢复之前有所放宽的严格浮点语义,确保了所有平台上的浮点计算结果一致性,从而提高了数值计算的精确性和可预测性。

  • 强封装 JDK 内部 API (Strongly Encapsulate JDK Internals – JEP 403)
    此更新进一步限制了对内部 JDK API 的访问。这通过防止应用程序依赖非标准化的内部组件,提高了安全性、稳定性和可维护性。

  • macOS 新渲染管线 (New macOS Rendering Pipeline – JEP 382)
    为 macOS 实现了一个新的 Java 2D 渲染管线,它使用 Apple Metal API,从而减少了 JDK 对已弃用的 Apple OpenGL API 的依赖。

  • macOS/AArch64 移植 (macOS/AArch64 Port – JEP 391)
    此项移植为 macOS AArch64 架构提供了原生支持,优化了在 Apple Silicon Mac 上的性能表现。

  • 外部函数与内存 API (Foreign Function & Memory API – JEP 412 – Incubator)
    作为一项孵化功能,此 API 允许 Java 程序与 Java 运行时之外的代码和数据进行互操作,旨在取代 Java 原生接口 (JNI),提供更安全、更高效的替代方案。

  • Vector API (JEP 414 – Second Incubator)
    此孵化中的 API 提供了一种表达向量计算的方式,可以在运行时编译成支持 CPU 架构上的最优向量指令,从而在某些工作负载下显著提升性能。

弃用与移除

Java 17 也标志着一些旧技术的弃用和移除,以推动平台向前发展:

  • 弃用 Applet API 以便移除 (JEP 398)
  • 弃用 Security Manager 以便移除 (JEP 411)
  • 移除 RMI Activation (JEP 407)

这些更改表明 Java 平台正在逐步淘汰过时的技术,以专注于现代化和更安全的替代方案。

Oracle JDK 17 的许可和支持

Oracle 对 Java 17 作为 LTS 版本的承诺意味着它将至少获得到 2029 年 9 月的安全、性能和错误修复更新。此外,Oracle JDK 17 及后续 JDK 版本在一段时间内可免费用于生产环境,并且 Oracle 会持续提供基于 GPL 许可的 OpenJDK 版本。

总结

Java 17 LTS 及其 Oracle JDK 17 的发布,为开发者带来了众多重要的功能增强、性能优化和安全性改进。作为一个长期支持版本,它为企业和个人开发者提供了一个稳定、现代且功能丰富的平台,以构建和运行高性能、可维护的 Java 应用程序。这些更新不仅提升了开发体验,也确保了 Java 在不断演进的软件生态系统中的领先地位。

滚动至顶部