首页 > 其他分享 >JDK19特性

JDK19特性

时间:2024-06-21 23:30:24浏览次数:22  
标签:JEP 虚拟 JDK19 RISC 特性 API 线程 JVM

JDK19特性

一、JAVA19概述

  JDK 19 2022 年 9 月 20 日正式发布以供生产使用,非长期支持版本。不过,JDK 19 中有一些比较重要的新特性值得关注。

image.png

JDK 19 只有 7 个新特性:

  • JEP 405: Record Patterns(记录模式)[1] (预览)
  • JEP 422: Linux/RISC-V Port[2]
  • JEP 424: Foreign Function & Memory API(外部函数和内存 API)[3] (预览)
  • JEP 425: Virtual Threads(虚拟线程)[4] (预览)
  • JEP 426: Vector(向量)API[5] (第四次孵化)
  • JEP 427: Pattern Matching for switch(switch 模式匹配)[6]
  • JEP 428: Structured Concurrency(结构化并发)[7] (孵化)

二、新特性介绍

1. 记录模式

  使用 记录模式 增强 Java 编程语言以解构记录值,可以嵌套记录模式和类型模式,实现强大的、声明性的和可组合的数据导航和处理形式。

注意:
这是一个预览版本。

2.Linux/RISC-V 移植

将 JDK 移植到 Linux/RISC-V,目前仅支持 RISC-V 的 RV64GV 配置(包含向量指令的通用 64 位 ISA)。将来可能会考虑支持其他 RISC-V 配置,例如通用 32 位配置 (RV32G)。

3.外部函数和内存 API

引入一个 API,Java 程序可以通过该 API 与 Java 运行时之外的代码和数据进行互操作。通过该 API
可有效地调用外部函数( JVM 之外的代码)和安全地访问外部内存(不受 JVM 管理的内存),使得 Java
程序能够调用本机库并处理本机数据,而不会出现 JNI 的脆弱性和危险。

注意:
这是个预览版 API 。

4.虚拟线程(预览版)

image.png

  JVM线程跟操作系统线程是一一对应的关系,线程真正的执行需要等到OS分配资源进行调度。因此操作系统对线程数量的限制也影响JVM线程数量。Centos7 修改操作系统线程数量大小方法.

# vim /etc/security/limits.d/20-nproc.conf
* soft nproc 65535
* hard nproc 65535

虚拟线程:

image.png

  针对上述JVM线程限制的问题,JDK19提供虚拟线程的方式,可以在一定程度上突破线程数量大小的限制(借鉴了golang goroutine的设计思想)。在JDK19中线程分为平台线程(Platform Thread)、虚拟线程(Virtual Thread).

  如上图所示,虚拟线程完全归JVM管理,不受操作系统限制,因此JVM可以生成大量的虚拟线程执行业务逻辑,从而提供系统的吞吐量。

注意:
该特性目前尚不成熟,不建议在生产环境中使用。

案例代码:

    

标签:JEP,虚拟,JDK19,RISC,特性,API,线程,JVM
From: https://blog.csdn.net/u010589700/article/details/139871566

相关文章

  • JDK18特性
    JDK18特性一、JAVA18概述  Java18在2022年3月22日正式发布,Java18不是一个长期支持版本,这次更新共带来9个新功能。https://openjdk.org/projects/jdk/18/二、具体新特性1.默认UTF-8字符编码  JDK一直都是支持UTF-8字符编码,这次是把UTF-8设置为......
  • C# 13(.Net 9) 中的新特性 - 扩展类型
    C#13即.Net9按照计划会在2024年11月发布,目前一些新特性已经定型,今天让我们来预览一个比较大型比较重要的新特性:扩展类型Extensiontypes在5月份的微软Build大会中的What’snewinC#13会议上,两位大佬花了很长的篇幅来演示这个特性。这个特性一直是大家很关心的,在g......
  • 并发编程的三大特性
    并发编程的三大特性一、原子性1.1什么是并发编程的原子性JMM(JavaMemoryModel)。不同的硬件和不同的操作系统在内存上的操作有一定差异的。Java为了解决相同代码在不同操作系统上出现的各种问题,用JMM屏蔽掉各种硬件和操作系统带来的差异。让Java的并发编程可以做到跨平......
  • MYSQL基础_18_MySQL8其它新特性
    第18章_MySQL8其它新特性1.MySQL8新特性概述MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多MySQLOptimizer优化器进行了改进。不仅在速度上得到了改......
  • 5-非理想导体情形下的传输线特性
    NonidealConductorModels1.在非闭合导体中传播的信号1.1传播常数从Maxwell‘sEquations可以导出如下旋度方程:更进一步的,可以将介电常数展开成频变的这里方程等号右边的项整体会被视作$\gamma^{2}$,由于该项前面的$j\omega$,括号内的虚部最终会导致信号的衰减,实部会导......
  • 重学java 79.JDK新特性 ⑤ JDK8之后的新特性
    别怕失败,大不了重头再来                          ——24.6.20一、接口的私有方法Java8版本接口增加了两类成员:        公共的默认方法        公共的静态方法Java9版本接口又新增了一类成员:......
  • 新媒体舆论的特性有哪些
    新媒体舆论具有多个鲜明的特性,主要体现在以下几个方面:1.交互性:新媒体提供了双向甚至多向的沟通交流平台,使得信息的传播不再是单向的。公众可以通过各种新媒体平台表达自己的观点和看法,形成互动式的舆论场。2.即时性:新媒体舆论的传播速度极快,几乎可以实时更新和传递信息。无......
  • 【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验3 总线型以太网的特性(广
    一、实验目的1.验证总线型以太网的特性;2.验证广播特性;3.验证各主机对总线的竞争使用以及可能产生的碰撞。二、实验要求1.使用CiscoPacketTracer仿真平台;2.观看B站湖科大教书匠仿真实验视频,完成对应实验。三、实验内容1.构建网络拓扑;2.配置网络设备;3.跟踪并查看......
  • UML:用例图的扩展点特性详解
    引言UML(统一建模语言)用例图是一种常用的系统建模工具,它可以帮助我们直观地表示系统的功能和用户的交互。这里将重点讲解UML用例图中的扩展点(ExtensionPoint)特性,通过具体示例深入理解这一概念。什么是扩展点?扩展点是UML用例图中的一个重要概念,它允许我们在用例的基础上添......
  • 【Python】类和对象高级特性
    目录前言类变量与实例变量类方法静态方法私有属性和方法多重继承元类描述符总结前言在前一篇文章中,我们讨论了Python类和对象的基本概念。本文将深入探讨一些高级特性,这些特性可以帮助你更有效地使用Python进行面向对象编程。类变量与实例变量类变量是属于......