Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
事件溯源
Kafka消息
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
人工智能
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
更多话题
JDK 20:Java 20 中的新特性 | infoworld
22-12-11
banq
Java 20 或 Java Development Kit (JDK) 20 是标准 Java 的下一个计划版本,现已功能齐全。正式标记为发布的六个功能处于孵化或预览阶段。这些包括作用域值、记录模式、switch 语句和表达式的模式匹配、外部函数和内存 API、虚拟线程和结构化并发。
以下是 JDK 20 的六个特性:
Scoped values
是处于孵化器开发阶段的 API,它支持在线程内和线程间共享不可变数据。这些变量优于线程局部变量,尤其是在使用大量虚拟线程时。作用域值允许在大型程序中的组件之间安全有效地共享数据,而无需求助于方法参数。目标包括易用性、可理解性和性能。
记录模式
,在第二个预览中,使用模式增强 Java 编程语言以解构记录值。可以嵌套记录模式和类型模式,以实现声明式、强大且可组合的数据导航和处理形式。目标包括扩展模式匹配以表达更复杂、可组合的数据查询,并且不改变类型模式的语法或语义。
自JDK 19
中的第一个预览版以来的主要变化包括添加对通用记录模式的类型参数推断的支持,支持记录模式出现在增强for语句的标头中,以及删除对命名记录模式的支持。
外部函数和内存 API
引入了一种 API,Java 程序可以通过该 API 与 Java 运行时之外的代码和数据进行互操作。API 使 Java 程序能够调用本机库并处理本机数据,而没有 JNI(Java 本机接口)的脆弱性和危险性。该 API 之前在 JDK 版本 17 和 18 中孵化,并在 JDK 19 中进行了预览。自 JDK 19 以来添加的改进包括统一和MemorySegment抽象MemoryAddress、增强的MemoryLayout层次结构以及拆分MemorySession和Arena促进SegmentScope 跨维护边界的段共享。
虚拟线程
是轻量级线程,可减少编写、维护和观察高吞吐量并发应用程序的工作量。自 JDK 19 中的第一个预览版以来的微小变化包括少量 API 更改(在 JDK 19 中永久化)和
降级ThreadGroup
(也在 JDK 19 中永久化)。
结构化并发
具有一个 API 来简化多线程编程,并将在不同线程中运行的多个任务视为一个工作单元。简化了错误处理和取消,提高了可靠性并增强了可观察性。自从在 JDK 19 中孵化以来,唯一的变化是它StructuredTaskScope已经更新为支持在任务范围内创建的线程继承范围值。
switch 语句和表达式的模式匹配
可以简洁、安全地表达复杂的面向数据的查询。之前在
JDK 17
、
JDK 18
和
JDK 19中进行过预览,第四次预览将实现与
[url=https://openjdk.org/jeps/432]Record Patterns 的[/url]持续共同进化,允许根据经验和反馈进行持续改进。自第三次预览以来,switch 模式匹配的主要变化包括简化 switch 标签的语法,支持推断 switch 语句和表达式中通用模式和记录模式的类型参数。此外,现在会抛出对枚举类的详尽切换MatchException,而不是IncompatibleClassChangeError在运行时没有应用切换标签时抛出。
没有进入
JDK 19
但仍在为 Java 考虑的功能包括
通用泛型
、
字符串模板
、
序列化集合
和
异步堆栈跟踪 VM API
。可以在
jdk.java.net找到 JDK 20 的早期访问版本
。
JDK 20 将于 2023 年 1 月 19 日进入第二个 rampdown 阶段,并在 2 月发布两个候选版本。JDK 20 被设置为短期功能版本,只有六个月的 Oracle 高级支持。将于 2023 年 9 月发布的 JDK 21 将是一个长期支持版本,并得到多年的支持。
java20