生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

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:008324

评论

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

Springboot 一行代码实现文件上传 20个平台!少写代码到极致

Java你猿哥

Java spring Spring Boot ssm

阿里p8架构师耗时一年整理SpringBoot,从构建小系统到架构大系统

做梦都在改BUG

Java Spring Boot 框架

常用的表格检测识别方法-表格区域检测方法(上)

合合技术团队

人工智能 深度学习 文字识别 表格识别 表格检测

人工智能与大模型主题师资培训落地,飞桨持续赋能AI人才培养

飞桨PaddlePaddle

paddle 百度飞桨

【FAQ】视频编辑服务常见问题及解答

HMS Core

HMS Core

LeetCode题解:136. 只出现一次的数字,排序后搜索,JavaScript,详细注释

Lee Chen

LeetCode

宝武中南钢铁借助飞桨让钢筋超限监控有了“火眼金睛”

飞桨PaddlePaddle

百度飞桨 图像分割 PaddleSeg

一种DWS迁移Oracle的CONNECT BY语法的方案

华为云开发者联盟

数据库 华为云 华为云开发者联盟 企业号 5 月 PK 榜

如何让技术架构师具有预知未来业务发展的能力? | 京东云技术团队

京东科技开发者

架构师 京东云 企业号 5 月 PK 榜

面试必备:四种经典限流算法讲解

做梦都在改BUG

Java 算法 限流

好家伙!阿里新产Java性能优化(终极版),涵盖性能优化所有操作

做梦都在改BUG

Java 面试 性能优化 性能调优

顶象App加固保障互联网+医疗安全与合规

Geek_2d6073

低代码赋能生物药企数字化

明道云

二面蚂蚁金服(交叉面),已拿Offer,Java岗定级阿里P6

Java你猿哥

Java ssm 并发 java面试 面经

GPT大语言模型Vicuna本地化部署实践(效果秒杀Alpaca) | 京东云技术团队

京东科技开发者

AI 京东云 GPT 企业号 5 月 PK 榜

阿里云微服务引擎 MSE 全新升级,实用能力更普惠,最高降幅 75%

阿里巴巴云原生

阿里云 云原生 微服务引擎

“前端”工匠系列(二):合格的工匠,怎么做好价值落地 | 京东云技术团队

京东科技开发者

技术架构 京东云 企业号 5 月 PK 榜

使用taro+canvas实现微信小程序的图片分享功能 | 京东云技术团队

京东科技开发者

taro 京东云 企业号 5 月 PK 榜

阿里蚂蚁金服4面面经(已拿Offer)附答案!突如其来的意外之喜

Java你猿哥

Java 算法 ssm 并发 面经

腾讯Java大牛整理推荐的(Spring AOP/IOC思维导图源码笔记)

做梦都在改BUG

Java spring aop ioc

阿里巴巴最新SpringCloudAlibaba学习笔记,全程通俗易懂,一套搞懂!

架构师之道

微服务

华为Atlas 200I DK A2开箱!

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 5 月 PK 榜

UI自动化测试革命:拥抱Maestro框架的未来之旅

麦客

ios android 测试 自动化测试

阿里巴巴官方上线!号称国内Java八股文天花板(终极版)首次开源

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

Midjourney|文心一格prompt教程[Text Prompt(上篇)]:品牌log、App、徽章、插画、头像场景生成,各种风格选择:科技风、运动风

汀丶人工智能

人工智能 AI绘画 MidJourney 文生图 prompt learning

Midjourney|文心一格prompt教程[Text Prompt(下篇)]:游戏、实物、人物、风景、动漫、邮票、海报等生成,终极模板教学

汀丶人工智能

人工智能 AI绘画 MidJourney 文生图 prompt learning

降低 Spark 计算成本 50.18 %,使用 Kyligence 湖仓引擎构建云原生大数据底座,为计算提速 2x

Kyligence

开源 数据分析

浅谈微服务中限流熔断降级的方法论

做梦都在改BUG

Java 微服务 限流 熔断降级

IPP Swap孵化器系统开发之LP算力挖矿模型

薇電13242772558

智能合约 dapp开发

架构师日记-从代码到设计的性能优化指南 | 京东云技术团队

京东科技开发者

技术架构 京东云 企业号 5 月 PK 榜

开源即时通讯IM框架MobileIMSDK的Uniapp端开发快速入门

JackJiang

网络编程 即时通讯 IM

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