0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

JDK19中比较重要的新特性

工程师邓生 来源:JavaGuide 作者:Guide 2022-09-26 09:22 次阅读

虽说是非LTS版,但是也带来了一些新特性,尤其像虚拟线程的加持等,也在网络上引起了一些相关的讨论,虽说类似的特性在有些语言里其实早就有了。

920af3e8-3d37-11ed-9e49-dac502259ad0.png

新的JDK 19包含如下7个新的特性:

9236ff1a-3d37-11ed-9e49-dac502259ad0.png

JEP 405: Record Patterns(Record模式)

JEP 422: Linux/RISC-V Port(Linux/RISC-V移植)

JEP 424: Foreign Function & Memory API(外部函数和内存API)

JEP 425: Virtual Threads(虚拟线程)

JEP 426: Vector API(向量API)

JEP 427: Pattern Matching for switch(switch模式匹配)

JEP 428: Structured Concurrency(结构化并发)

405:记录模式(预览阶段)

Record Patterns可对Record的值进行解构,通过嵌套Record模式和Type模式能够实现强大的、声明性的、可组合的数据导航和处理形式。

该特性目前处于预览阶段。

424: 外部函数和内存API(预览阶段)

Java程序可以通过该API与Java运行时之外的代码和数据进行互操作。

通过高效地调用外部函数(即JVM之外的代码)和安全地访问外部内存(即不受JVM 管理的内存),该API使Java程序能够调用本机库并处理本机数据,而不会像JNI那样危险和脆弱。

一句话总结就是该特性让Java调用普通native代码更加方便和高效。

425:虚拟线程(预览阶段)

新版本同样为Java引入了虚拟线程,虚拟线程是JDK实现的轻量级线程,它在其他多线程语言中已经被引入并且也证实了十分有用,比如Go中的Goroutine、Erlang中的进程等等。

虚拟线程可以避免上下文切换的额外耗费,兼顾了多线程的优点,简化了高并发程序的复杂,可以有效减少编写、维护和观察高吞吐量并发应用程序的工作量。

426:向量API(第四次孵化)

向量计算是由对向量的一系列操作而组成。向量API用来表达向量计算,而该计算可以在运行时可靠地编译为支持的CPU架构上的最佳向量指令,从而实现优于等效标量计算的性能。

向量API的目标是为用户提供简洁易用且与平台无关的表达范围广泛的向量计算。

427:switch模式匹配(第三次预览)

switch模式匹配最早曾在Java 17中就以预览功能的形式引入,即支持用switch表达式和语句的模式匹配以及对模式语言的扩展来增强 Java 编程语言。

更通俗一些说,也就是支持将模式匹配扩展到switch中,允许针对一些模式测试表达式,这样就可以简明而安全地表达复杂的面向数据的查询。

428:结构化并发(孵化阶段)

JDK 19引入了结构化并发,这是一种多线程编程方法,目的是为了通过结构化并发API来简化多线程编程,但需要注意的是这并不是为了取代java.util.concurrent,同时该功能目前也处于孵化阶段。

结构化并发将不同线程中运行的多个任务视为单个工作单元,从而简化错误处理、提高可靠性并增强可观察性。也就是说,结构化并发保留了单线程代码的可读性、可维护性和可观察性。

以上就是此次JDK更新的一些简要总结和梳理,可以看到其中大部分都是孵化特性和预览特性,看来很多特性功能都得在后面发布的LTS版中才能正式转正了。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux系统
    +关注

    关注

    4

    文章

    587

    浏览量

    27184
  • JAVA
    +关注

    关注

    19

    文章

    2944

    浏览量

    104114
  • RISC-V
    +关注

    关注

    44

    文章

    2142

    浏览量

    45714

原文标题:Java 19 已至,虚拟线程 = 王炸!!

文章出处:【微信号:CodeSheep,微信公众号:CodeSheep】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    介绍一些比较重要的运放非理想参数

      除了共模放大系数以外,实际的运放还有很多非理想参数,这个小节我们介绍一些比较重要的运放非理想参数,这些非理想参数对运放电路是否能正确工作影响很大。 在设计电路时,必须考虑这些非理想参数的影响。
    发表于 02-02 13:55 1622次阅读
    介绍一些<b class='flag-5'>比较重要</b>的运放非理想参数

    Kafka几个比较重要的配置参数

    的配置已经满足了大部分的使用场景,本文分享总结了几个比较重要的配置参数,主要是针对producer端的配置,希望对你有所帮助。
    发表于 11-04 08:10

    JDK 15安装步骤及新特性

    的方式格式化字符串,并让开发人员在需要时可以控制格式。  文本块最早准备在 JDK 12 添加的,但最终撤消了,然后在 JDK 13 作为预览特性进行了添加,然后又在
    发表于 12-23 17:36

    STM32比较重要的头文件

    /**这里是STM32比较重要的头文件 我愛你的吻123原創講解 QQ:1746430162******************************************************************************* @file stm32f10x.hST 标准的头文件* @aut
    发表于 08-05 06:46

    讲解S3X2440部分比较重要的启动程序

    S3X2440的ARM型号为ARM920,所以本文章讲解部分比较重要的启动程序(能够保证能够正常启动),在以后的博客我会详细对他进行分析。一个最简单的start.S文件因该包括看门狗部分、时钟初始化部分以及程序代码定位部分。1、看门狗部分废话不多说,直接开始配置,首先就
    发表于 02-17 07:12

    AI算法中比较常用的模型都有什么?

    AI算法中比较常用的模型都有什么
    发表于 08-27 09:19

    毕昇JDK 8 Dynamic CDS 特性介绍

    内存的类到 JSA 文件。毕昇JDK 8 实现的 Dynamic CDS 特性相比之前的 AppCDS ,增加了 Custom ClassLoader 的支持,扩展了共享类的支持
    发表于 12-23 16:19

    Delphi中比较GUID是否相等

    Delphi中比较GUID是否相等,CompareMem(@guid1, @guid2, SizeOf(TGUID)),最开始时想到的方法
    发表于 06-22 10:11 1635次阅读

    FPGA几个比较重要的基本模块是什么

    CLB(Configurable Logic Block):FPGA最基本的组成单元,可以实现基本的组合逻辑和时序电路。其中,LUT(Lookup Tables)是实现组合逻辑的部分,可以实现n个输入的任意组合逻辑运算(不同型号的FPGA有所不同,下图的例子为6个输入)。
    发表于 09-27 15:18 8046次阅读
    FPGA<b class='flag-5'>中</b>几个<b class='flag-5'>比较重要</b>的基本模块是什么

    电源测试中比较重要的有哪些项目

    主要有交叉负载,浪涌,输入电压,纹波噪音,输出短路,过功率,转换效率,功率因数,响应时间,时序,噪音,传导辐射,漏电流,高低温测试等。 交叉负载测试:对电源进行4种常用型负载类型的拉偏测试,以检验电源的电压稳定性; 浪涌:瞬间出现超出稳定值的峰值,它包括浪涌电压和浪涌电流。浪涌也叫突波,顾名思义就是超出正常工作电压的瞬间过电压。本质上讲,浪涌是发生在仅仅几百万分之一秒时间内的一种剧烈脉冲。可能引起浪涌的
    的头像 发表于 08-26 19:05 3237次阅读
    电源测试<b class='flag-5'>中比较重要</b>的有哪些项目

    JDK 19 / Java 19正式发布 虚拟线程来了

    记录模式 (预览版) Linux/RISC-V 移植 外部函数和内存 API (预览版) 虚拟线程(预览版) Vector API (第四次孵化) Switch 模式匹配(第三预览版) 结构化并发(孵化阶段) JDK 19 / J
    的头像 发表于 10-10 17:08 1820次阅读

    JDK11升级JDK17最全实践

    2021年9月14日,Oracle发布了可以长期支持的JDK17版本,那么从JDK11到JDK17,到底带来了哪些特性呢?亚毫秒级的ZGC效果到底怎么样呢?值得我们升级吗?而且升级过程
    的头像 发表于 11-17 10:36 1312次阅读
    <b class='flag-5'>JDK</b>11升级<b class='flag-5'>JDK</b>17最全实践

    weblogic修改jdk路径

    WebLogic是一个流行的Java应用服务器,可以用于部署和管理企业级Java应用程序。在WebLogic的安装和配置过程,我们可能会遇到需要修改JDK(Java Development Kit
    的头像 发表于 12-05 14:46 1061次阅读

    如何在eclipse配置jdk环境

    在Eclipse配置JDK环境非常重要,它是开发Java程序的基础。本文将详细介绍如何在Eclipse配置JDK环境。 下载和安装
    的头像 发表于 12-06 11:49 1298次阅读

    JDK11升级JDK17最全实践干货来了

    解决你的问题。 上篇文章给大家带来了JDK8升级JDK11的最全实践,相信大家阅读后已经对JDK11有了比较深入的了解。2021年9月14日,Oracle发布了可以长期支持的
    的头像 发表于 06-25 14:50 515次阅读
    <b class='flag-5'>JDK</b>11升级<b class='flag-5'>JDK</b>17最全实践干货来了