Java 20于2023年3月21日由甲骨文发布,是标准Java的最新升级。JDK 20中的版本要么是尚未完全成熟的孵化器功能,要么是各种功能的预览版,包括虚拟线程和结构化并发。
尽管这个版本没有重大更新,但我们希望Java用户继续从遗留Java版本过渡到Java生态系统中的新技术。想要学习java技术的同学,可以考虑参加Java培训,全面系统的理论知识和实操项目学习,让你快速学有所成。
Java 20特性
该短期Java版本将在2022年9月20日发布后的六个月内得到支持JDK 19。我们预计Java 21的长期支持(LTS)版本将于9月发布,在多年支持的基础上提供更好的更新。在此之前,让我们深入了解JDK 20的新功能。
Java 20发布版已经正式标记了7个特性,包括:虚拟线程、vector API提议、结构化并发、作用域值、外部函数和内存API、记录模式、switch语句和表达式的模式匹配,以及vector API提议。
虚拟线程
虚拟线程是结构化并发的先决条件。自JDK 19的第一个预览版以来,已经做了一些小的改动,包括少量的API更改,以及对ThreadGroup的降级。现在,在第二个预览阶段,这些轻量级线程减少了编写和维护并发应用程序的工作量。据Oracle称,这将从根本上改变Java应用程序的扩展方式。参加java培训是入门学习的最佳选择,有经验丰富的专业老师面授指导教学,通过理论结合实战的方式教授java基础知识,帮助你更好的理解与运用java。
Vector API提案
以前,Vector API是在JDK 16, JDK 17, JDK 18,以及JDK 19。这个新的API提议是在Java 20发布前几周作为重新孵化而添加的,相对于JDK 19没有任何变化。该实现包括少量的错误修复和性能增强,包括表达向量计算的能力,这些向量计算在运行时可靠地编译,并在受支持的CPU上充当最佳向量指令。
结构化并发
在JDK 19版中,结构化并发作为一个孵化API,通过将不同线程中运行的多个任务视为一个工作单元来工作。这有助于简化错误处理和取消,从而提高可靠性和可观察性。重新孵化的唯一变化是StructuredTaskScope被更新以支持在任务范围内创建的线程对范围值的继承。
范围值
作用域值使不可变数据能够在线程间和线程内共享。它们优于线程局部变量,尤其是在使用大量虚拟线程时。这个孵化API的目标包括易用性、可理解性、健壮性和性能。参加以实战项目为主要教学方法的java培训,可以有效地缩短同企业具体用人需求之间的差距,快速提升自己。
外部函数和内存API
外部函数和内存(FFM) API结合了两个早期的孵化API:外部内存访问API和外部链接器API。FFM API首先在JDK 17号孵化,然后在JDK 18号再次孵化;然后在JDK 19号进行了首次预演。根据用户反馈,JDK 20重新预览了FFM API,包括以下改进:
l MemorySegment和MemoryAddress抽象是统一的(内存地址现在由零长度内存段建模)
l 密封的MemoryLayout增强了层次结构,以便于在中使用模式匹配switch表达和陈述
l MemorySession已经分裂成Arena和SegmentScope为了便于跨维护边界共享段
记录模式
记录模式的第二次预览的主要目标是扩展模式匹配,以表达更复杂、可组合的数据查询,以及维护类型模式的语法或语义。自从JDK 19版发布了这一语言特性的第一个预览版以来,Java 20中有了以下变化:增加了对一般记录模式的类型参数推断的支持,支持记录模式出现在增强的for语句的头中,以及取消了对命名记录模式的支持。通过参加java培训,学习最新java技能,可以让你的实力一直保持领先水平,提升行业竞争力。
Switch语句和表达式的模式匹配
模式匹配最初是作为预览版提出的,并于17年在JDK发布,18年在JDK提出了第二次预览版并发布,19年在JDK提出了第三次预览版并发布。这一语言特性在JDK 20中的第四次预览版使其能够继续与记录模式预览版一起发展,并包括围绕switch语句的语法的基本更新。
关于Java 20的最终想法
Java 20的特性正朝着更加标准化的方向发展,这些特性是由各种Java研究项目决定的。虽然JDK 20没有引入任何新的JEP或重大更新,但它仍然有多个值得测试和留下反馈的预览和孵化器功能。如果你也对java感兴趣,不妨报个java培训班,有专业讲师面授指导教学,还有更加系统全面的课程,让学习更科学,更有效。