JDK 20 / Java 20 正式 GA


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

此版本包括 7 个 JEP(都处于不同的孵化和预览阶段),以及数百个较小的功能增强和数千个错误修复:

429: Scoped Values (Incubator)
432: Record Patterns (Second Preview)
433: Pattern Matching for switch (Fourth Preview)
434: Foreign Function & Memory API (Second Preview)
436: Virtual Threads (Second Preview)
437: Structured Concurrency (Second Incubator)
438: Vector API (Fifth Incubator)

作用域值(Scoped Values)进入孵化阶段

引入 Scoped Values,它可以在线程内和线程间共享不可变数据。它们优于线程局部变量,尤其是在使用大量虚拟线程时。

记录模式 (Record Patterns) 进入第 2 预览阶段

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

switch 模式匹配 (Pattern Matching for switch) 进入第 4 预览阶段

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

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

引入一个 API,通过它,Java 程序可以与 Java 运行时之外的代码和数据进行互操作。通过有效地调用外部函数,以及安全地访问外部内存,该 API 使 Java 程序能够调用本地库并处理本地数据,而不会像 JNI 那样有漏洞和危险。

虚拟线程 (Virtual Threads) 进入第 2 预览阶段

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

结构化并发 (Structured Concurrency) 进入第 2 孵化阶段

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

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

向量 API (Vector API) 进入第 5 孵化阶段

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

更多详情可查看:https://openjdk.org/projects/jdk/20/

下载:https://jdk.java.net/20/


相關推薦

2023-03-24

JDK/Java 20 已正式 GA。根据 Oracle 披露的信息显示,在为 JDK 20 修复的 issue 数量上,位列全球前五位的厂商分别为:甲骨文(Oracle)、红帽(Red Hat)、思爱普(SAP)、ARM 和腾讯(Tencent)。其中,来自国内的积极贡献厂商除腾

2023-06-10

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

2022-09-21

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) 42

2023-06-17

GraalVM是一个基于OpenJDK的高性能多语言虚拟机,它可以将Java应用编译成本地可执行文件,从而提高启动速度,降低内存占用,减少云资源消耗。GraalVM还支持JavaScript,Python,Ruby,LLVM和WebAssembly等多种语言,并提供了丰富的跨语言

2022-11-30

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

2023-12-05

Apache NetBeans 20 现已正式发布。NetBeans 是一个主要面向 Java 的集成开发环境,同时支持 C/C++、PHP、JavaScript 和其他编程语言。 一些更新内容包括: Gradle 返回所有 loaders 的最高质量 #6371 将 Gradle Tooling API 更新到 8.4 

2023-11-20

Spring Data 2023.1 (代号:Vaughan) 现已正式发布,该版本包含多个基础架构主题以及对单个存储模块的改进。 Spring Data 2023.1 已将 Spring Framework baseline 升级到 6.1,同时还升级了 Project Reactor 2023.0.0 和 Micrometer 1.12.0,要求将 Java 17 作为

2022-04-28

MySQL 的最新版本 8.0.29 于 2022 年 4 月 26 日正式发行(GA)。MySQL8.0 发布至今已经历 4 年(2018 年 4 月 19 日 GA),已经进入了标准生命周期的末期,如果你还在继续使用 MySQL 5.7 版本,甚至是 5.6 版本,现在应该认真考虑未来的数据

2023-05-03

EsearchX for java 是基于 okhttp + snack3 开发的,一个代码直白和简单的 Elasticsearch ORM 框架。 支持 jdk8、jdk11、jdk17、jdk20 支持 es7.x、es8.x 采用 lambda 链式写法,很是清新 public class DemoApp { public void demo() { EsContext esx = new EsContext(

2022-11-23

Spring Authorization Server 1.0 现已正式发布,Spring Authorization Server 是 Spring Security 团队领导的社区驱动项目,致力于解决 Spring 社区的 OAuth 2.0 Authorization Server 支持问题。 公告称,自 2020 年 4 月 2 日首次提交以

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-07-28

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

2023-09-05

要的痛点:启动慢,费内存。 关键记事: 2021年1月,正式对外开源 2022年7月,建立官网,发力推广 2023年2月,v2.0 发布。官网增加 Solon Initializr,用于生成项目模板 2023年4月,成为信通院可信开源社区、可信开源项目

2023-09-07

mons-io 升级到版本 2.13.0 WW-5317 - 将 log4j-api 升级到版本 2.20.0 WW-5318 - 将 slf4j-api 升级到版本 2.0.7 WW-5320 - 完成可重复构建 WW-5322 - 将 Jackson 版本升级到 2.15.2 WW-5323 - 将 JasperReports 升级到版本 6.20.5 WW-5325 - 将 commons-lang3 升级