jdk19功能集冻结,虚拟线程终于要来了!(代码片段)

xhmj12 xhmj12     2022-10-22     444

关键词:

上一篇:JetBrains 如何看待自己的软件在中国被频繁破解?

从 JDK 19 的概述页面来看,JDK 19 处于 Rampdown Phase Two 阶段,整个功能集已被冻结,将不再对 JEP 进行改动。

Java 19 只有 7 个新特性:

405:

Record Patterns (Preview) 记录模式

422:

Linux/RISC-V Port Linux/RISC-V 移植

424:

Foreign Function & Memory API (Preview) 外部函数和内存 API 

425:

Virtual Threads (Preview) 虚拟线程

426:

Vector API (Fourth Incubator) 向量 API

427:

Pattern Matching for switch (Third Preview) Switch 模式匹配

428:

Structured Concurrency (Incubator) 结构化并发

下面对新特性作简短的介绍:

记录模式 (预览版)

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

这是一个预览语言功能。

Linux/RISC-V 移植

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

外部函数和内存 API (预览版)

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

这是个预览版 API 。

虚拟线程(预览版)

将虚拟线程引入 Java 平台。虚拟线程是轻量级线程,可显著地减少编写、维护和观察高吞吐量并发应用程序的工作量。

这是一个预览 API,我们 OSC 曾对此进行了详细介绍 。

Vector API (第四次孵化)

引入一个 API 来表达在运行时能够可靠编译的向量计算,在支持的 CPU 架构上优化向量指令,从而实现优于标量计算的性能。

Switch 模式匹配(第三预览版)

用 switch 表达式和语句的模式匹配,以及对模式语言的扩展来增强 Java 编程语言。将模式匹配扩展到 switch 中,允许针对一些模式测试表达式,这样就可以简明而安全地表达复杂的面向数据的查询。

该特性最早在 Java 17 中作为预览版出现, Java 19 为第三次预览。

结构化并发(孵化阶段)

引入用于结构化并发的 API 来简化多线程编程,结构化并发将不同线程中运行的多个任务视为单个工作单元,从而简化错误处理、提高可靠性并增强可观察性。

这是一个孵化阶段的 API。

另附 JDK 19 时间表:

2022/06/09


Rampdown Phase One Rampdown 

第一阶段 (fork from main line)

2022/07/21


Rampdown Phase Two Rampdown 

第二阶段

2022/08/11


Initial Release Candidate 

初始候选版本(RC)

2022/08/25


Final Release Candidate  

最终候选版本(RC)

2022/09/20


General Availability 

稳定版本

其中 Rampdown 主要是修 Bug 和测试阶段。 

还有一个有意思的事:从 Java 16 开始,每个版本的特性数量越来越少:

  • Java 16:17 个

  • Java 17:14 个

  • Java 18 :9 个

  • Java 19 :7 个

Java 20 不会变成 5 个吧...

相关链接:https://openjdk.org/projects/jdk/19/

出品 | OSC开源社区(ID:oschina2013)

劲爆!java协程终于来了(代码片段)

...概述页面来看,JDK19处于RampdownPhaseTwo阶段,整个功能集已被冻结,将不再对JEP进行改动。Java19只有7个新特性:405:RecordPatterns(Preview)记录模式 查看详情

java协程终于来了,线程即将是过去式?

...概述页面来看,JDK19处于RampdownPhaseTwo阶段,整个功能集已被冻结,将不再对JEP进行改动。Java19只有7个新特性:下面对新特性作简短的介绍:记录模式(预览版)使用记录模式增强Java编程语言以解构记... 查看详情

java18都要来了,你不会还在用java8吧?(代码片段)

...ff0c;将获得Oracle至少八年的支持,但JDK18将是一个短期功能版本,只支持六个月。可以在java.net& 查看详情

java18要来了,你不会还在用java8吧?(代码片段)

...ff0c;将获得Oracle至少八年的支持,但JDK18将是一个短期功能版本,只支持六个月。可以在java.net(https://jdk.java.net/18/)上找到适用于Linux、Windows和MacOS的JDK18的尝鲜版本。JDK18新功能一览:JEP400:指定UTF-8作为... 查看详情

java18都要来了,你不会还在用java8吧?(代码片段)

...ff0c;将获得Oracle至少八年的支持,但JDK18将是一个短期功能版本,只支持六个月。可以在java.net(https://jdk.java.net/18/)上找到适用于Linux、Windows和MacOS的JDK18的尝鲜版本。JDK18新功能一览:JEP400:指定UTF-8作为... 查看详情

java18要来了,你不会还在用java8吧?(代码片段)

...ff0c;将获得Oracle至少八年的支持,但JDK18将是一个短期功能版本,只支持六个月。可以在java.net(https://jdk.java.net/18/)上找到适用于Linux、Windows和MacOS的JDK18的尝鲜版本。JDK18新功能一览:JEP400:指定UTF-8作为... 查看详情

微信公众号的带货时代终于要来了?

...始成真微信公众号在近期版本更新中增加了“我的商店”功能。公众号运营者申请开通该功能后,即可以通过文章中插入“我的商品”卡片方式,借助粉丝力量带货创收。字母榜体验后发现,与公众号关联的微信小商... 查看详情

我还在生产玩jdk7,jdk15却要来了!|新特性尝鲜(代码片段)

...较大的版本,每次升级之后都会支持最新版本JDK引入的新功能。这几天升级了IDEA,顺便体验了一下JDK15的新特性。虽然我知道你们可能跟我一样JDK8都还没用熟,但是无妨,看看新版本JDK来酸一下。TextBlocks最终定板之前版本的JDK... 查看详情

java14令人期待的5大新特性,打包工具终于要来了(代码片段)

随着新的Java发布生命周期的到来,新版本预计将于2020年3月发布,本文将对其中的5个主要特性作些概述。Java13刚刚发布给开发人员使用不久,最新版本的JDK于2019年9月发布。但是很少有公司现在改用了Java13,因为这个版本看起来... 查看详情

劲爆!java协程要来了。。。(代码片段)

...15这天创建了一个新的特性:JEPdraft:VirtualThreads(Preview)虚拟线程,我们来看看是什么鬼:虚拟线程是一种成本低廉、轻量级的用户模式的线程实现,它可以充分利用可用硬件,大幅减少编写、维护和监测高并发... 查看详情

劲爆,java协程要来了。。。(代码片段)

...15这天创建了一个新的特性:JEPdraft:VirtualThreads(Preview)虚拟线程,我们来看看是什么鬼:虚拟线程是一种成本低廉、轻量级的用户模式的线程实现,它可以充分利用可用硬件,大幅减少编写、维护和监测高并发... 查看详情

支持jdk19虚拟线程的web框架,之三:观察运行中的虚拟线程(代码片段)

...源码):https://github.com/zq2599/blog_demos前文链接支持JDK19虚拟线程的web框架,之一:体验支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用本篇概览本篇是《支持JDK19虚拟线程的web框 查看详情

支持jdk19虚拟线程的web框架,之三:观察运行中的虚拟线程(代码片段)

...(含配套源码):https://github.com/zq2599/blog_demos《支持JDK19虚拟线程的web框架》系列文章链接支持JDK19虚拟线程的web框架,之一:体验支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用支持J 查看详情

支持jdk19虚拟线程的web框架,之一:体验(代码片段)

...(含配套源码):https://github.com/zq2599/blog_demos《支持JDK19虚拟线程的web框架》系列文章链接支持JDK19虚拟线程的web框架,之一:体验支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用支持J 查看详情

支持jdk19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用(代码片段)

...(含配套源码):https://github.com/zq2599/blog_demos《支持JDK19虚拟线程的web框架》系列文章链接支持JDK19虚拟线程的web框架,之一:体验支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用支持J 查看详情

支持jdk19虚拟线程的web框架,上篇:体验(代码片段)

...原创(含配套源码):https://github.com/zq2599/blog_demos关于虚拟线程随着JDK19GA版本的发布,虚拟线程(来自ProjectLoom)这一特性也闪亮登场,虚拟线程是JDK而并非OS实现的轻量级线程(LightweightProcess 查看详情

支持jdk19虚拟线程的web框架,之五(终篇):兴风作浪的threadlocal(代码片段)

...(含配套源码):https://github.com/zq2599/blog_demos《支持JDK19虚拟线程的web框架》系列文章链接支持JDK19虚拟线程的web框架,之一:体验支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用支持J 查看详情

支持jdk19虚拟线程的web框架,之五(终篇):兴风作浪的threadlocal(代码片段)

...(含配套源码):https://github.com/zq2599/blog_demos《支持JDK19虚拟线程的web框架》系列文章链接支持JDK19虚拟线程的web框架,之一:体验支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用支持J 查看详情