JDK 19 / Java 19 正式发布,虚拟线程来了!
点击上方蓝色字体,选择“设为星标”
来源:OSC开源社区(ID:poschina2013)
- 记录模式 (预览版)
- Linux/RISC-V 移植
- 外部函数和内存 API (预览版)
- 虚拟线程(预览版)
- Vector API (第四次孵化)
- Switch 模式匹配(第三预览版)
- 结构化并发(孵化阶段)
JDK 19 / Java 19 已正式发布。
图片
新版本总共包含 7 个新的 JEP:
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 个吧...
------------- END -------------扫描下方二维码,加入技术群。暗号:加群
相关文章
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java递归和迭代_Java中的迭代与递归
- 【说站】java类加载器的常用方法
- 【说站】java对象分配内存的两种类型
- JDK 19 / Java 19 正式发布,虚拟线程来了!
- java运行环境配置(jdk配置)Java博客 2 年前 桃李Taoli
- JAVA为啥要用stream流处理_java哪个部分最难学
- java线程dump命令_jdk的dump
- JAVA DESKeySpec 加密的实现
- java并发编程(2):Java多线程-java.util.concurrent高级工具
- java获取客户端信息详解编程语言
- java Andrioid 多点触摸详解编程语言
- 使用java.awt.Graphics2D画矩形详解编程语言
- Java学习笔记之二java标识符命名规范详解编程语言
- Linux配置多版本JDK实现多版本Java切换(linux多个jdk)
- Java ftp上传文件方法效率对比详解编程语言
- Linux中安装JDK的简单步骤(linux安装jdk)
- Java 调用 MySQL,编写数据库程序(java导入mysql)
- Linux下安装Java 开发环境指南(linux装java环境)
- 策略Java中Redis过期策略探索(redisjava过期)
- Oracle 痛下杀手:Java 浏览器插件将在 JDK 9 上被彻底弃用
- Java技术封装Redis,打造高效数据处理系统(java封装redis)
- Linux中修改默认JDK版本(linux修改默认jdk)
- Java和Redis的配合安装方法(java redis安装)
- 使用Java程序执行Linux指令:实现自动化操作(java执行linux命令)
- Oracle公司正式发布新版JDK,构建强大的Java开发新世界(oracle公司jdk)
- Java编程与Oracle技术创造技术价值的奥秘(java编程oracle)
- Java 离开 Oracle,新的旅程即将开始(java没有Oracle)
- Oracle JDK 6新开发者的终极体验(oracle jdk 6)