JDK 18 GA 发布,新功能速览

2,306

JDK 18 GA 发布,该版本是一个短期维护版本,拥有六个月的支持时间,可用于生产环境。

此次版本更新共包括有 9 个 JEP、上百个增强功能和超过一千个错误修复。下载链接:jdk.java.net/18/

400:UTF-8 by Default
408:Simple Web Server
413:Code Snippets in Java API Documentation
416:Reimplement Core Reflection with Method Handles
417:Vector API (Third Incubator)
418:Internet-Address Resolution SPI
419:Foreign Function & Memory API (Second Incubator)
420:Pattern Matching for switch (Second Preview)
421:Deprecate Finalization for Removal

库的更新和改进

  • JEP 400: UTF-8 by Default - 将 UTF-8 设置为标准 Java API 的默认字符集。通过此更改,依赖于默认字符集的 API 将在所有实现、操作系统、语言环境和配置中保持一致。
  • JEP 408: Simple Web Server – 一个命令行工具和 API,用于启动仅提供静态文件的最小 Web 服务器。该工具可用于原型设计、临时编码和测试目的,尤其是在教育环境中。
  • JEP 416: Reimplement Core Reflection with Method Handles - 在 java.lang.invoke 方法句柄之上重新实现 java.lang.reflect.Method、Constructor 和 Field。通过让方法处理反射的底层机制,降低了 java.lang.reflect 和 java.lang.invoke API 的维护和开发成本。
  • JEP 418: Internet-Address Resolution SPI - 为主机名和地址解析定义服务提供者接口 (SPI),以便java.net.InetAddress可以使用平台内置解析器以外的解析器。

工具

  • JEP 413: Java API文档中的 JEP 代码片段 - 为 JavaDoc 的标准 Doclet引入 @snippet标记,以简化在 API 文档中的示例源代码。

后续 JDK 版本的预览和孵化器

  • JEP 417:Vector API(Third Incubator) –为开发人员提供一个API,以可靠地利用提供可扩展向量扩展的CPU体系结构,并提高性能。
  • JEP 419:Foreign Function and Memory API (Second Incubator) -通过API 使 Java 程序能够与 Java 运行时之外的代码和数据进行互操作。通过有效地调用外部函数(即 JVM 之外的代码)和安全地访问外部内存(即不受 JVM 管理的内存),Java 程序能够调用本地库和处理本地数据,而不会出现 JNI的问题。
  • JEP 420:Pattern Matching for Switch (Second Preview) - 通过对 switch 表达式和语句的模式匹配以及对模式语言的扩展来增强 Java 编程语言。将模式匹配扩展到 switch ,允许针对多个模式测试表达式,每个模式都有特定的操作,简洁安全地表达复杂的面向数据的查询。

面向未来的 Java 程序

  • JEP 421: Deprecate Finalization for Removal - Finalization 目前默认保持启用状态,但可以手动禁用。在未来的版本中,它将默认禁用,并在以后的版本中删除。依赖Finalization 的库和应用程序的维护者应该考虑迁移到其他资源管理技术,例如try-with-resources statementcleaners