Java 18 在 2022 年 3 月 22 日正式发布,是一个非长期支持版本。
Java 18 新增了 9 个新特性:
- JEP 400:UTF-8 by Default(默认字符集为 UTF-8)open in new window
- JEP 408:Simple Web Server(简易的 Web 服务器)open in new window
- JEP 413:Code Snippets in Java API Documentation(Java API 文档中的代码片段)open in new window
- JEP 416:Reimplement Core Reflection with Method Handles(使用方法句柄重新实现反射核心)open in new window
- JEP 417:Vector(向量) APIopen in new window(第三次孵化)
- JEP 418:Internet-Address Resolution(互联网地址解析)SPIopen in new window
- JEP 419:Foreign Function & Memory API(外部函数和内存 API)open in new window(第二次孵化)
- JEP 420:Pattern Matching for switch(switch 模式匹配)open in new window(第二次预览)
- JEP 421:Deprecate Finalization for Removalopen in new window
Java 17 中包含 14 个特性,Java 16 中包含 17 个特性,Java 15 中包含 14 个特性,Java 14 中包含 16 个特性。相比于前面发布的版本来说,Java 18 的新特性少了很多。
Java 18的更新体现在以下几个方面:
-
编码和国际化改进:
- UTF-8 by Default (JEP 400): 将UTF-8设置为Java平台的默认字符集,解决了跨平台字符编码的问题。
-
开发者工具和简化开发流程:
- Simple Web Server (JEP 408): 引入了一个简易的命令行静态文件HTTP服务器,方便开发者在没有部署完整Web服务器的情况下快速托管和共享静态文件。
-
文档改进:
- Code Snippets in Java API Documentation (JEP 413) : 允许在Java API文档中使用
@snippet
标签插入代码片段,提升了文档中代码示例的质量和易用性。
- Code Snippets in Java API Documentation (JEP 413) : 允许在Java API文档中使用
-
性能优化:
- Reimplement Core Reflection with Method Handles (JEP 416): 使用方法句柄改进了核心反射的实现,提升了性能。
-
向量计算:
- Vector API (Third Incubator) (JEP 417): 继续发展向量API,通过利用硬件的SIMD指令优化性能,进行第三轮孵化,展示了更多改进和新特性。
-
网络功能:
- Internet-Address Resolution SPI (JEP 418): 引入了一个新的SPI,允许自定义网络地址解析策略,提高了灵活性和可配置性。
-
本地互操作:
- Foreign Function & Memory API (Second Incubator) (JEP 419): 继续孵化外部函数和内存API,使Java能够更安全、更高效地与本地代码进行互操作。
-
语言特性:
- Pattern Matching for switch (Second Preview) (JEP 420): 继续对switch模式匹配进行预览,进一步简化了代码并提高了代码的可读性和健壮性。
-
废弃特性:
- Deprecate Finalization for Removal (JEP 421): 开始废弃对象终结机制,准备在将来的版本中移除,鼓励开发者使用更可靠的资源管理技术。