2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Java 19 新特性一览

  • 2022-09-28
    北京
  • 本文字数:1774 字

    阅读完需:约 6 分钟

Java 19新特性一览

Oracle发布了 Java 19 及虚拟机。这个最终的特性集中包含了如下 7 个 JEP。


  • JEP 405:记录模式(预览);

  • JEP 422:Linux/RISC-V 移植;

  • JEP 424:外部函数和内存 API(预览);

  • JEP 425:虚拟线程(预览);

  • JEP 426:Vector API(第四轮孵化器);

  • JEP 427:switch 的模式匹配(第三次预览);

  • JEP 428:结构化并发(孵化器)。


Java 19 的新特性发布节奏与 JDK 18 的 9 个新特性差不多,但少于 JDK 17 的 14 个新特性、JDK16 的 17 个新特性、JDK 15 的 14 个新特性和 JDK 14 的 16 个新特性。


这个版本包含了来自 Amber、Loom 和 Panama 项目的 JEP,以及将 JDK 移植到 Linux/RISC-V 指令集的新特性。我们在这里介绍其中的一些新特性。值得注意的是,在 JDK 19 中没有代表 Valhalla 项目的 JEP。

Panama 项目


JEP 424 和 JEP 426 属于 Panama 项目,这个项目旨在改进和丰富 JVM 与“外来”(即非 java)API 之间的互操作性,这些 API 极有可能包含 C 语言库中常用的接口。


JEP 424,即外部函数和内存 API(预览),为 Java 应用程序引入一个 API,通过高效调用外部函数和安全访问不受 JVM 管理的外部内存来实现与 Java 运行时之外的代码和数据的互操作。这个 JEP 演化自 JEP 419(即外部函数和内存 API(第二轮孵化器),在 JDK 18 中交付)和 JEP 412(即外部函数和内存 API(孵化器),在 JDK 17 中交付),并针对 Java 社区的反馈进行了增强。


JEP 426,即 Vector API(第四轮孵化器),根据前三轮孵化的反馈进行了改进——JEP 417(即 Vector API(第三轮孵化器),在 JDK 18 中交付)、JEP 414(即 Vector API(第二轮孵化器),在 JDK 17 中交付),以及 JEP 338(即 Vector API(孵化器),在 JDK 16 中作为孵化器模块交付)。JEP 426 提议对 Vector API 进行增强,从 MemorySegment(JEP 424,即外部函数和内存 API(预览))加载或存储 Vector。


关于如何实现外部函数和内存 API 的示例应用程序,可以在这个GitHub代码库中找到,由 Azul 的高级开发布道师 Carl Dea 提供。

Loom 项目


JEP 425 和 JEP 428 属于 Loom 项目,这个项目旨在探索、孵化和交付 Java VM 特性和 API,其目的是支持易于使用、高吞吐量的轻量级并发和新的编程模型,可以通过虚拟线程、定界续体(Delimited Continuation)和尾部调用来实现。


JEP 425,即虚拟线程(预览),向 Java 平台引入了虚拟线程。这是一种轻量级线程,极大地减少了编写、维护和观察高吞吐量并发应用程序的工作量。


JEP 428,即结构化并发(孵化器),提议通过引入一个新的库来简化多线程编程,这个库将运行在不同线程中的多个任务视为单个工作单元。这可以简化错误处理和取消操作,提高可靠性,并增强可观察性。


关于如何实现虚拟线程和结构化并发 API 的示例应用程序可以在这些代码库中找到:由 Oracle 的 Java 开发布道师 Nicolai Parlog 提供的GitHub代码库和由 Contrast Security 公司高级软件工程师 Bazlur Rahman 提供的GitHub代码库

Amber 项目


JEP 405 和 JEP 427 属于 Amber 项目,这个项目旨在探索和培养较小的用于提升生产力的 Java 语言特性。


JEP 405,即记录模式(预览),提议用记录模式来解构记录值。记录模式可以与类型模式一起使用,“支持强大的、声明式的和可组合的数据浏览和处理形式”。类型模式最近已通过 JEP 406(即 switch 的模式匹配(预览),在 JDK 17 中交付)和 JEP 420(即 switch 的模式匹配(第二次预览),在 JDK 18 中交付)被用在 switch 的 case 子句中。


JEP 427,即 switch 的模式匹配(第三次预览),针对前两轮预览反馈进行了增强——JEP 406(即 switch 的模式匹配(预览),在 JDK 17 中交付)和 JEP 420(即 switch 的模式匹配(第二次预览),在 JDK 18 中交付)。JEP 420 以来的变更包括——保护模式被替换为 switch 块中的 when 子句;当选择器表达式的值为空时,模式 switch 的运行时语义与遗留 switch 的语义更为接近。


关于如何实现 switch 的记录模式和模式匹配的示例应用程序可以在这个GitHub代码库的 java-19 目录中找到,作者是 Global Points 的 Java 技术主管 Wesley Egberto。

JDK 20


目前还没有针对或者集成到 JDK 20 的 JEP。但是,根据最近提交的 JEP 草案和 JEP 候选版本,我们在这篇新闻报道中猜测了哪些 JEP 有可能被包含在 JDK 20 中。


JDK 20 的正式发布日期还没有公布,但按照 6 个月的发布节奏,它预计在 2023 年 3 月中旬发布,并在 2022 年 12 月中旬进行功能冻结。


JDK 19 现在可以从Oracle网站下载,其他二进制文件预计将在未来几天内可用。


原文链接

Java 19 Delivers Features for Projects Loom, Panama and Amber

2022-09-28 08:009246

评论

发布
暂无评论
发现更多内容

Spring项目开发的智能助手:通义灵码使用指南

阿里巴巴云原生

spring

Spring项目开发的智能助手:通义灵码使用指南

阿里云云效

云计算 spring

私有云统一管理定义以及好处简单说明

行云管家

云计算 私有云 云管理

​​AMS行政管理系统:数字化赋能人力资源精益管理​

秃头小帅oi

2025慕尼黑上海电子展揭秘汽车电子新动能:智能电动化浪潮下,汽车半导体如何赋能行业未来发展?

极客天地

CAD把PDF图纸插入为光栅图像

极客天地

2025慕尼黑上海电子展揭示技术密码:机器人行业蓬勃发展,半导体“芯脏”如何给予支撑?

极客天地

龙蜥RISC-V SIG 2.0研讨会圆满举办,宋卓当选国际基金会Datacenter SIG主席

OpenAnolis小助手

AI 操作系统 高性能计算 龙蜥社区 OpenAnolis

Paragon NTFS与Tuxera NTFS有何区别 Mac NTFS 磁盘读写工具选哪个好

阿拉灯神丁

Mac 软件 Paragon NTFS NTFS 磁盘管理器 Tuxera NTFS2024 磁盘格式读写软件

全双工分轨语音数据集:让AI实现无缝对话

数据堂

人工智能 语音识别 语音交互 语音数据集 全双工分轨语音数据集

是时候重新审视“小米模式”了

脑洞汽车

智能电车

运维堡垒机-开启IT安全运维利器!

行云管家

网络安全 堡垒机 数字安全

龙蜥社区荣获 OS2ATC 2025 “最具影响力开源创新贡献奖”

OpenAnolis小助手

开源 操作系统 龙蜥社区 OpenAnolis

CAD粘贴表格显示#怎么办

极客天地

Dinky 和 Flink CDC 在实时整库同步的探索之路

Apache Flink

大数据 flink 实时计算

Agentic AI 干货!DeepSeek + OpenAI SDK 构建 Agent 实战

七牛云

AI

倒计时三年,国产化替代100%进度走到哪了?

禅道项目管理

信创 项目管理软件 国产化替代

Web3项目的开发

北京木奇移动技术有限公司

区块链技术 web3开发 软件外包开公司

【轻量化】三个经典轻量化网络解读

地平线开发者

自动驾驶; 算法工具链 地平线征程6

CAD如何炸开参照图形

极客天地

DNS常见问题:什么是主机记录和记录值?

国科云

CrossOver 25重磅发布:众多革命性突破带给你更强的Mac游戏兼容性

阿拉灯神丁

兼容性测试 CrossOver Mac下载 Mac游戏推荐 mac虚拟机软件

5分钟掌握!DolphinScheduler时间参数动态配置秘籍

白鲸开源

大数据 开源 Apache DolphinScheduler 任务调度 大数据调度

中国企业出海的驱动力、跨端技术创新及流量分发新模式

xuyinyin

Apache DolphinScheduler 3.3.0 Alpha发布,功能增强与性能优化大升级!

白鲸开源

大数据 开源 Apache DolphinScheduler 任务调度 发版

Web3项目开发的测试

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

移动端动态化发展:技术演进与生态建设实践

xuyinyin

导师招募!Apache DolphinScheduler开源之夏2025等你领航!

白鲸开源

开源 Apache DolphinScheduler 开源之夏

龙蜥社区两大委员会月度会议圆满召开

OpenAnolis小助手

开源 操作系统 龙蜥社区

Cloud Kernel SIG 季度动态:发布ANCK 6.6-003版本,支持一测多证

OpenAnolis小助手

操作系统 龙蜥社区 OpenAnolis 龙蜥社区SIG

基于Raft协议 + gRPC长连接实现集群间的服务发现、服务注册、元数据共享、元数据持久化

路 飞

Java 19新特性一览_语言 & 开发_Michael Redlich_InfoQ精选文章