JDK 19 / Java 19 正式 GA


JDK 19 / Java 19 已正式发布。

新版本总共包含 7 个新的 JEP:

405: Record Patterns (Preview)
422: Linux/RISC-V Port
424: Foreign Function & Memory API (Preview)
425: Virtual Threads (Preview)
426: Vector API (Fourth Incubator)
427: Pattern Matching for switch (Third Preview)
428: Structured Concurrency (Incubator)
  • 405:记录模式 (Record Patterns) 进入预览阶段

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

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

  • 422:将 JDK 移植到 Linux/RISC-V 平台

目前只支持 RISC-V 的 RV64GV 配置,它是一个通用的 64 位 ISA。将来会考虑支持其他的 RISC-V 配置,例如通用的 32 位配置 (RV32G)。

  • 424:外部函数和内存 API (Foreign Function & Memory API) 进入预览阶段

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

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

  • 425:虚拟线程 (Virtual Threads) 进入预览阶段

为 Java 引入虚拟线程,虚拟线程是 JDK 实现的轻量级线程,它在其他多线程语言中已经被证实是十分有用的,比如 Go 中的 Goroutine、Erlang 中的进程。虚拟线程避免了上下文切换的额外耗费,兼顾了多线程的优点,简化了高并发程序的复杂,可以有效减少编写、维护和观察高吞吐量并发应用程序的工作量。

详情查看 Java 引入预览版虚拟线程(协程)功能,大幅提高应用吞吐量

  • 426:向量 API (Vector API) 进入第 4 孵化阶段

向量计算由对向量的一系列操作组成。向量 API 用来表达向量计算,该计算可以在运行时可靠地编译为支持的 CPU 架构上的最佳向量指令,从而实现优于等效标量计算的性能。向量 API 的目标是为用户提供简洁易用且与平台无关的表达范围广泛的向量计算。

  • 427:switch 模式匹配 (Pattern Matching for switch) 进入第 3 预览阶段

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

  • 428:结构化并发 (Structured Concurrency) 进入孵化阶段

JDK 19 引入了结构化并发,这是一种多线程编程方法,目的是为了通过结构化并发 API 来简化多线程编程,并不是为了取代 java.util.concurrent,目前处于孵化阶段。

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

下载地址 | Release Note


相關推薦

2023-03-22

JDK 20 / Java 20 正式发布。JDK 20 是一个短期维护版本,将获得六个月的支持。尽管如此,但它仍然可用于生产环境中。根据开发计划,下一个 LTS 版本就是将于 2023 年 9 月发布的 JDK 21。 此版本包括 7 个 JEP(都处于不同的孵化和

2023-06-10

JDK 21 已进入 Rampdown 第一阶段,正式从主线 fork 出来,这是继 JDK 17 之后的又一 LTS 版本。 进入 Rampdown 第一阶段后,整个功能集被冻结。除了一个正在运行的 JEP 将被丢弃之外,此版本将不再针对 JEP 进行改动,而是专注于错误

2022-12-09

Eclipse 4.26 (2022-12) 已正式发布。 Eclipse 下载地址 https://download.eclipse.org/eclipse/downloads/drops4/R-4.26-202211231800/ 更新内容 https://www.eclipse.org/eclipse/news/4.26/ 升级已有安装版本(不要在生产环境进行) https://download.eclipse.org/eclipse/upd

2022-06-28

认/开箱即用状态,在测试期间没有将额外的参数传递给 Java 实现,以查看 JVM 实现的参考性能 接下来看看值得关注的测试结果。 在基本的 Java SciMark 2.0 测试中,不同版本的 JDK 性能没有太大差距。至于 JVM 性能方面,相

2022-11-30

Spring Vault 3.0 已正式 GA。 Spring Vault 为访问、存储和废弃机密数据提供客户端支持,以及为开发者提供熟悉的 Spring 抽象。它提供了与 Vault 交互的底层和高级抽象,使开发者无需担心基础设施问题。 基于 HashiCorp 的 Vault,

2022-07-28

o 阶段,整个功能集已被冻结,将不再对 JEP 进行改动。 Java 19 只有 7 个新特性: 405: Record Patterns (Preview) 记录模式 422: Linux/RISC-V Port Linux/RISC-V 移植 424: Foreign Function & Memory API (Preview) 外部函数和内

2022-10-07

Java 轻量级应用开发框架。可用来快速开发 Java 应用项目,主框架仅 0.1 MB。 相对于 Spring Boot 和 Spring Cloud 的项目: 启动快 5 ~ 10 倍。 (更快) qps 高 2~ 3 倍。 (更高) 运行时内存节省 1/3 ~ 1/2。 (更少) 打包可以缩

2022-10-27

。 GraalVM 是一个高性能的 JDK 发行版。它旨在加速用 Java 和其他 JVM 语言编写的应用程序的执行,同时还为 JavaScript、Python、基于 LLVM 的语言(如 C 和 C++)以及许多其他流行编程语言提供运行时。此外,GraalVM 为编程语言之间

2022-10-14

来插入基于虚拟线程的Executor实现,目标是在 Project Loom 正式可用时提供“一等公民”的配置选项。 除了上述的变化,Spring Framework 6.0 还包含许多其他改进和特性,例如: 提供基于@HttpExchange服务接口的 HTTP 接口客户端

2022-10-22

于虚拟线程的 Executor 实现,目标是在 Project Loom 正式可用时提供 “一等公民” 的配置选项。 除了上述的变化,Spring Framework 6.0 还包含许多其他改进和特性,例如: 提供基于 @HttpExchange 服务接口的 HTTP 接

2022-08-02

Apex 和 Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。 PMD 6.48 正式发布,本次更新内容如下: 新特性 对 Java 19 的支持 注意:对 Java 17 预览语言功能的支持已被删除 Gherkin 支持 错误修复 apex ApexSOQLInjection:增加支

2022-11-05

版本包括 22 项 Bugfix 和功能改进,也是 Spring Framework 6.0.0 正式 GA 前的最后一个 RC 版本,目前计划于 11 月中旬发布正式版。 新特性 为@HttpExchange方法添加对@RequestPart参数的支持 #29420 在 Content-Type Header 中对字符集的处理

2022-11-12

本包括 12 项 Bugfix 和功能改进,应该是 Spring Framework 6.0.0 正式 GA 前的最后一个 RC 版本,目前计划于 11 月中旬发布正式版。 新特性 为 SQL Server 序列引入 DataFieldMaxValueIncrementer #29447 在 ListableBeanFactory 上引入 findAllAnnotat

2023-06-13

Java 21 预计于 2023 年 9 月 19 日正式发布,这是继 Java 17 之后的下一个 LTS 版本。截至 6 月 8 日,JDK 21 已进入 Rampdown 第一阶段;随着整个功能集被冻结,分代式 Shenandoah (Generational Shenandoah) 功能将被删除(从 16 个功能削减到 15 个