继Java官方团队在2021年9月正式发布Java17后,近日,Oracle 官方发布了 JDK 18 / Java 18 正式版。
Java18为这个部署广泛的编程语言之用户群提供了一些改进软件开发实践的新功能。在性能、稳定性和安全性上面,Java 18 得到了全面的改进提升,其中包括对平台的九项 JDK增强(JEP),大大提升了开发人员的工作效率。
Java 18 给开发者带来哪些加速与新功能?请往下看~
JDK 18 版本共包括 9 个 JEP,以及数百个较小的增强功能和一千多个 Bug 修复。
1
*引入一个简单的 Web 服务器*
提供一个命令行工具,来启动一个只提供静态文件的最小网络服务器,它没有CGI或类似servlet的功能可用。该工具用于原型设计、临时编码和测试目的,尤其是在教学环境中。
2
UTF-8 作为标准 Java API 的默认字符集
通过此更改,依赖于默认字符集的API将在所有实现、操作系统、区域设置和配置中保持一致。
3
支持在JavaAPI文档中加入代码片段
为JavaDoc的Standard Doclet引入一个@snippet标记,以简化 API 文档中嵌入示例源代码的难度。
4
*用方法句柄重新实现核心反射*
在java.lang.invoke的方法句柄之上,重构java.lang.reflect的方法、构造函数和字段,使用方法句柄处理反射的底层机制将减少java.lang.reflect和 java.lang.invoke两者的API维护和开发成本。
**5
**
*Vector API(第三孵化器)*
引入一个API来表达向量计算,这些计算在运行时可以编译为支持的CPU架构上的最佳向量指令,从而实现优于等效标量计算的性能。
6
互联网地址解析SPI
定义用于主机名和地址解析的服务提供者接口(SPI),以便java.net.InetAddress可以使用平台内置解析器以外的解析器。
7
外部函数和内存API(第二孵化器)
引入了一个新API,Java程序可以通过它与Java运行时之外的代码和数据进行互操作。通过有效地调用外部函数(即JVM外的代码),并安全地访问外部内存(即不由JVM管理的内存),外部函数和内存API使Java程序能够调用本机库并处理本机数据,而不具有JNI的脆弱性和危险。
**8
**
*switch 模式匹配表达式*
使用switch表达式和语句的模式匹配以及对模式语言的扩展来增强Java编程语言。将模式匹配扩展到switch允许针对多个模式测试表达式,每个模式都有特定的操作,可以简洁安全地表达复杂的面向数据的查询。
9
弃用Finalization功能
Java 1.0 中引入的Finalization旨在帮助避免资源泄漏问题,然而这个功能存在延迟不可预测、行为不受约束,以及线程无法指定等缺陷,导致其安全性、性能、可靠性和可维护性方面都存在问题,因此将其弃用,用户可选择迁移到其他资源管理技术。
Java18并不是LTS版本,仅是每六个月一升级的增量更新,其包括代码库和工具的更新,还有一些正在开发但尚未投入生产的技术预览。根据开发计划,JDK 19 将于今年 9 月发布,而下一个 LTS 版本 JDK 21 将于 2023 年 9 月发布。