linux 之父出席、干货分享、圆桌讨论,精彩尽在 opencloudos 社区开放日,报名戳
写点什么

java 18正式发布:默认字符集utf-金马国际

  • 2022 年 3 月 24 日
  • 本文字数:1964 字

    阅读完需:约 6 分钟

甲骨文(oracle)发布了 java 编程语言和虚拟机的第 18 版。该版本的最终特性主要集中在以下 9 个 jep 上:


  • jep 400:

  • jep 408:

  • jep 413:

  • jep 416:

  • jep 417:

  • jep 418:

  • jep 419:

  • jep 420:

  • jep 421:


java 18 的略低于之前的版本:java17 中包含 14 个特性;java 16 中包含 17 个特性;java 15 中包含 14 个特性;java 14 中包含 16 个特性。


这个版本的 jep 特性为、和提供了持续的贡献,并提供了一些有用的新工具。本文介绍其中的一些新特性。

panama 项目

jep 417 和 jep 419 由 panama 项目赞助,该项目旨在改进和丰富 jvm 与定义良好的“外部”(即非 java)api 之间的互操作性,这些 api 很可能会包括 c 语言库中常用的接口。


除了性能的改进之外,jep 417,还针对前两个孵化阶段的反馈进行了增强:jep 414,和 jep 338,。jep 338 作为集成在 jdk 16 中,jep 414 被定义为的最终 jep 之一。


jep 419,根据 java 社区的反馈(jep 412,,该 jep 在 jdk 17 中交付)进行了改进。第二个孵化阶段的变化包括:在内存访问 var 句柄中支持更多载体,如 booleanmemoryaddress 接口;用于 memoryaddressmemorysegment 接口的更通用的解引用(dereference)api;更方便获取下行调用(downcall)方法句柄的 api,这样就不再需要传递 memorytype 枚举了;以及新的用于内存段之间复制 java 数组的 api。

loom 项目

jep 418 由 loom 项目赞助,该项目旨在探索、孵化并交付 java 虚拟机(jvm)特性和 api,以支持易于使用、高吞吐量的新型轻量级并发编程模型。这将通过虚拟线程、。


jep 418,,为主机名和地址解析定义了一个服务提供者接口,以便 java.net.inetaddress 可以利用默认的内置 openjdk 解析器以外的解析器。

amber 项目

jep 420 由 amber 项目赞助,该项目旨在探索和孵化更小的 java 语言特性,以提高生产率。


jep 420,,允许针对多个模式测试目标 switch 表达式,每个模式都有一个特定的操作,从而可以简洁而安全地表达复杂的面向数据的查询。这是继在 jdk 17 中交付的 jep 406,之后的第二个预览版本。增强功能包括:对的改进,强制在同一类型的受保护模式之前出现一个常量的 case 标签;与密封的层次结构相比,现在对switch块的检查更加精确了。

java 工具

jep 413,,为 oracle 的引入了 @snippet 标记,这是一个众所周知的 java api 文档实用程序,可生成默认的 html 格式的输出。其目的是简化 api 文档中包含的示例源代码。代码片段可以是内联的,也可以是外部的,下面的这两个示例将会说明这一点:


在如下内联的示例中,源代码被添加到@snippet标记前面的注释中,并用大括号括起来了:


/** * 下面的代码展示了如何使用 {@code optional.ispresent}: * {@snippet : * if (v.ispresent()) { *     system.out.println("v: "   v.get()); *     } * } */
复制代码


在如下外部的示例中,现有的源文件 showoptional.java 包含了 @start@end 标记。已定义的区域,即 region="example" ,在注释和源文件中被引用:


/** * 下面的代码展示了如何使用 {@code optional.ispresent}: * {@snippet file="showoptional.java" region="example"} */public class showoptional {    void show(optional v) {        // @start region="example"        if (v.ispresent()) {            system.out.println("v: "   v.get());            }        // @end        }    }
复制代码


jep 408,,提供了一个简易的 http 命令行 web 服务器,它只提供静态文件。 该实用程序旨在用于原型设计、临时编码和测试,特别是在教育场景中。 服务器启动方式如下:


java -m jdk.httpserver [-b bind address] [-p port] [-d directory] [-h to show help message] [-o none|default|verbose]
复制代码

java 19

目前,java 19 中只有一个 targeted integrated 状态的 jep:


  • jep 422:


java 19 的正式发布日期尚未公布,但按照 6 个月的发布周期推算,预计将于 2022 年 9 月中旬发布。开发人员预计会在 2022 年 6 月中旬进行特性冻结。


java 18 现在可以从了,其他供应商的二进制文件预计在几天后提供。


原文链接:



2022 年 3 月 24 日 20:064037

评论 3 条评论

发布
很多炒rust的
2022 年 03 月 30 日 22:48
回复
微服务架构趋势下如何处理存量系统
2022 年 03 月 26 日 09:54
回复
你发任你发,我用java8
2022 年 03 月 25 日 15:56
回复
没有更多了
发现更多内容

gpu容器虚拟化:用户态和内核态的技术和实践详解

gpu容器虚拟化:用户态和内核态的技术和实践详解

网站地图