JDK 20:Java 20的新功能
admin
2023-07-30 20:15:32
0

JDK 20:switch语句和表达式的模式匹配将在2023年3月发布的下一版标准Java中进行第四次预览。

Java 20是标准Java的下一个计划版本,最近又增加了四个拟议的功能,尽管它们是以前在标准Java中预览或孵化的功能,现在又要预览(或孵化)了。为Java 20 或JDK(Java开发工具包)20新提议的功能是第二次预览记录模式、外来函数和内存API以及虚拟线程。结构化并发将在JDK 20中重新孵化。

这些都加入了之前提出的功能,即switch语句和表达式的模式匹配,预计将在即将发布的Java SE(标准版)中进行第四次预览。尽管OpenJDK的JDK 20网页仍然没有列出计划发布的功能,但OpenJDK的Java增强建议(JEP)索引引用了这五个功能。

  • 记录模式:用记录模式增强Java编程语言,以解构记录值。记录模式和类型模式可以嵌套,以实现数据导航和处理的声明性、强大和可组合的形式。该提案的目标包括扩展模式匹配以表达更复杂的、可组合的数据查询,并且不改变类型模式的语法或语义。自JDK 19第一次预览以来的主要变化包括:增加了对通用记录模式(Record Pattern)的类型参数推断的支持,支持记录模式出现在增强的for语句的标题中,并删除了对命名记录模式的支持。
  • 外来函数和内存 API 介绍了 Java 程序可以与 Java 运行时之外的代码和数据进行互操作的 API。该API使Java程序能够调用本地库并处理本地数据,而没有JNI(Java Native Interface)的脆性和危险。该API以前在JDK 17和18版本中进行过孵化,并在JDK 19中进行过预览。自JDK 19以来增加的改进包括统一MemorySegmentMemoryAddress抽象,增强MemoryLayout层次结构,以及将MemorySession拆分为ArenaSegmentScope以促进跨维护边界的段共享。
  • 虚拟线程是轻量级的线程,可以减少编写、维护和观察高吞吐量并发应用的工作量。自第一次预览以来的微小变化包括在JDK 19中被永久化的少量API变化和对ThreadGroup的降级,也在JDK 19中被永久化。
  • 结构化并发具有简化多线程编程的API,并将在不同线程中运行的多个任务视为一个工作单元。错误处理和取消被简化了,提高了可靠性并增强了可观察性。JDK 19中正在酝酿的唯一变化是更新了StructuredTaskScope,以支持在任务范围内创建的线程继承范围内的值。
  • switch语句和表达式的模式匹配被认为是一种机制,可以使复杂的面向数据的查询得到简洁和安全的表达。之前在JDK 17、JDK 18和JDK 19中进行了预览,第四次预览将实现与Record Patterns的持续共同发展,Record Patterns也作为预览包含在JDK 19中,允许根据经验和反馈进行持续改进。自第三次预览以来,switch的模式匹配的主要变化包括简化switch标签的语法,以及支持switch语句和表达式中通用模式和记录模式的类型参数的推断。另外,如果在运行时没有切换标签适用,对一个枚举类的详尽切换现在会抛出MatchException而不是IncompatibleClassChangeError

JDK 20的其他可能功能包括通用泛型和字符串模板。JDK 20的早期访问版本可以在jdk.java.net上找到。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...