速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

Java 18 正式发布:默认字符集 UTF-8,附带简易 HTTP 服务器,弃用 Finalization

  • 2022-03-24
  • 本文字数:1964 字

    阅读完需:约 6 分钟

Java 18正式发布:默认字符集UTF-8,附带简易 HTTP 服务器,弃用Finalization

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



Java 18 的特性节奏略低于之前的版本:Java17 中包含 14 个特性;Java 16 中包含 17 个特性;Java 15 中包含 14 个特性;Java 14 中包含 16 个特性。


这个版本的 JEP 特性为Amber项目Loom项目Panama项目提供了持续的贡献,并提供了一些有用的新工具。本文介绍其中的一些新特性。

Panama 项目

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


除了性能的改进之外,JEP 417,Vector API(第三个孵化阶段)还针对前两个孵化阶段的反馈进行了增强:JEP 414,Vector API(第二个孵化阶段)和 JEP 338,Vector API(孵化阶段)。JEP 338 作为孵化阶段模块集成在 JDK 16 中,JEP 414 被定义为JDK 17的最终 JEP 之一。


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

Loom 项目

JEP 418 由 Loom 项目赞助,该项目旨在探索、孵化并交付 Java 虚拟机(JVM)特性和 API,以支持易于使用、高吞吐量的新型轻量级并发编程模型。这将通过虚拟线程、定界延续(delimited continuations)和尾调用来实现


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

Amber 项目

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


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

Java 工具

JEP 413,支持在Java API文档中加入代码片段,为 Oracle 的标准Doclet引入了 @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<String> v) {        // @start region="example"        if (v.isPresent()) {            System.out.println("v: " + v.get());            }        // @end        }    }
复制代码


JEP 408,简单Web服务器,提供了一个简易的 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:



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


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


原文链接:


https://www.infoq.com/news/2022/03/java18-released/

2022-03-24 20:065446

评论 3 条评论

发布
用户头像
很多炒rust的
2022-03-30 22:48
回复
用户头像
微服务架构趋势下如何处理存量系统
https://xie.infoq.cn/article/3f9e2ea9e02ef60a90f7dac3d
2022-03-26 09:54
回复
用户头像
你发任你发,我用java8
2022-03-25 15:56
回复
没有更多了
发现更多内容

程序员世界破破烂烂,低代码总在缝缝补补

伤感汤姆布利柏

Java Vue 前端 低代码

AI 辅助编程后,主流开发方式都有哪些变化?

代码生成器研究

现在好用的零代码开发平台或者低代码开发平台有哪些?

代码生成器研究

AI大模型,如何破圈而出?

脑极体

IT外包服务广泛应用于哪些行业?

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

“粤”见昇腾AI,昇腾AI开发者创享日·广州站即将开启

彭飞

除了Trello软件,这4款项目管理看板也值得推荐!

彭宏豪95

项目管理 科技 在线白板 效率软件 看板工具

数据挖掘与低代码开发应用:加速业务创新的黄金组合

快乐非自愿限量之名

数据挖掘 低代码 数据应用

从HumanEval到CoderEval: 你的代码生成模型真的work吗?

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 代码生成大模型

为什么要做ERP集成?ERP系统如何与其他业务应用程序集成

RestCloud

ETL ERP

释放潜能:IT外包服务对业务增长的强大推动

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

低代码如何降低门槛、快速交付、实现可持续IT架构?

树上有只程序猿

软件开发 低代码平台 JNPF

Logii 指纹浏览器中如何设置代理

Geek_bf375d

爬虫 IP 代理IP 代理IP设置 #HTTP

《21 天技术人写作行动营》--怎么做个人定位?

IT蜗壳-Tango

程序员修仙之道

peak徐

程序人生 成长感悟

JNPF低代码开发平台高效赋能开发者

互联网工科生

开发者工具 低代码开发 JNPF

如何在VMMask指纹浏览器中设置代理

Geek_bf375d

爬虫 IP 代理IP 跨境电商 #HTTP

终于,AWS Aurora 也走向了融合架构,这一次阿里云 PolarDB-X 确实遥遥领先

小猿姐

数据库 阿里云 AWS

FFA 2023 专场解读:流批一体&平台建设&云原生

Apache Flink

大数据 flink 实时计算

FFA 2023 专场解读:AI 特征工程、数据集成

Apache Flink

大数据 flink 实时计算

如何转行互联网?

代码生成器研究

华为亮相OpenInfra Days China 2023,分享开源基础设施的实践和技术展望

彭飞

想转行学计算机,但现在听说互联网裁员太严重?

代码生成器研究

当代程序员的一天怎么过?

代码生成器研究

热点浅谈:低代码开发平台是什么?低代码具备什么特点?

代码生成器研究

直播预约|FFA 2023 主会场,12 月 8 日正式上线!

Apache Flink

flink

香橙派联合华为发布全新Orange Pi AIpro 开发板,起售价799元

彭飞

FFA 2023 「生产实践」专场:Flink 大规模技术优化与生产实践

Apache Flink

大数据 flink 实时计算

非典型“技术写作者”

escray

技术人写作 21 天技术人写作行动营 21 天

Java 18正式发布:默认字符集UTF-8,附带简易 HTTP 服务器,弃用Finalization_语言 & 开发_Michael Redlich_InfoQ精选文章