JDK 18 / Java 18 GA 发布
Posted Hollis Chuang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK 18 / Java 18 GA 发布相关的知识,希望对你有一定的参考价值。
文 | Travis
出品 | OSC开源社区(ID:oschina2013)
JDK 18 / Java 18 GA 发布。JDK 18 是一个短期维护版本,将获得六个月的支持。尽管如此,但它仍然可用于生产环境中。根据开发计划,JDK 19 将于今年 9 月发布,而下一个 LTS 版本 JDK 21 将于 2023 年 9 月发布。
JDK 18 共包括 9 个 JEP,以及数百个较小的增强功能和一千多个错误修复。
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 |
默认编码为 UTF-8
将 UTF-8 指定为标准 Java API 的默认字符集。通过此更改,依赖于默认字符集的 API 将在所有实现、操作系统、语言环境和配置中保持一致。
简易 HTTP 服务器
提供命令行工具来启动一个仅提供静态文件的最小 Web 服务器。没有可用的 CGI 或类似 servlet 的功能。该工具可用于原型设计、临时编码和测试目的,尤其是在教育环境中。
Java API 文档中的代码片段
为 JavaDoc 的 Standard Doclet 引入一个 @snippet 标签,以简化 API 文档中的示例源代码。
用方法句柄(Method Handles)重新实现 Java 核心反射
在 java.lang.invoke 方法句柄的基础上重新实现 java.lang.reflect.Method、Constructor 和 Field。让方法句柄成为反射的底层机制将减少 java.lang.reflect 和 java.lang.invoke API 的维护和开发成本。
Vector API (第三次进行孵化)
引入一个 API 来表达在运行时能够可靠编译的向量计算,在支持的 CPU 架构上优化向量指令,从而实现优于标量计算的性能。
互联网地址解析 SPI
定义一个用于主机名称和地址解析的服务供给接口(SPI),以便 java.net.InetAddress 可以使用平台内置解析器以外的解析器。
外部函数和内存 API(第二次进行孵化)
引入一个 API,通过它,Java 程序可以与 Java 运行时之外的代码和数据进行互操作。通过有效地调用外部函数,以及安全地访问外部内存,该 API 使 Java 程序能够调用本地库并处理本地数据,而没有 JNI 的脆弱性和危险。
Switch 模式匹配(第二次进行预览)
用 switch
表达式和语句的模式匹配,以及对模式语言的扩展来增强 Java 编程语言。将模式匹配扩展到 switch
中,允许针对一些模式测试表达式,这样就可以简明而安全地表达复杂的面向数据的查询。这是 JDK 18 中的一个预览的语言功能。
弃用 Finalization,以便在未来删除
弃用 Finalization,以便在未来的版本中删除它。目前 Finalization 仍然是默认启用的,但可以禁用它以便进行早期测试。在之后的版本中,它将率先被默认禁用,并在未来的版本中将其彻底删除。依赖于 Finalization 的库和应用程序的维护者应该考虑迁移到其他资源管理技术,如 try-with-resources
语句。
更多详情可查看:https://openjdk.java.net/projects/jdk/18/
下载:https://jdk.java.net/18/
有道无术,术可成;有术无道,止于术
欢迎大家关注Java之道公众号
好文章,我在看❤️
以上是关于JDK 18 / Java 18 GA 发布的主要内容,如果未能解决你的问题,请参考以下文章
劲爆:Java 18 正式发布,默认 UTF-8,finalize 被弃用。。别再乱用了