当前位置: 首页 > Web前端 > vue.js

JDK19的新特性

时间:2023-03-31 17:40:57 vue.js

Java19将于9月发布,是一个非LTS版本,将具有结构化并发、虚拟线程、开关表达式模式匹配、向量API(向量)和Linux/RISC-V端口等特性。原定于今年9月发布的JavaDevelopmentKit19现已功能完善,并已进入第二个降级阶段。该版本有七个特性,包括结构化并发、记录模式、外部函数和内存API预览,以及对开源Linux/RISC-V指令集架构(ISA)的支持。随着标准Java发布过程中的这一最新里程碑,其他计划中的功能,例如通用泛型和值对象,将不得不等待平台的更高版本。JDK19紧随3月22日JDK18的到来。标准Java的发布周期为六个月。JDK19计划于9月20日正式发布用于生产,之前的发布候选版本分别为8月11日和8月25日。初始阶段于上个月达到。可以在JDK.java.net/19访问JDK19的早期访问版本。JDK19的特性包括:在孵化器阶段,StructuredConcurrency(https://openjdk.org/jeps/428)旨在通过StructuredConcurrencyAPI简化多线程编程。这种并发性将在不同线程中运行的多个任务视为一个工作单元,以简化错误处理和取消。提高了可靠性和可观察性。record模式record(https://openjdk.org/jeps/405)的预览,用于解构record记录值。可以嵌套记录模式和类型模式,以实现声明式、强大且可组合的数据导航和操作形式。该提案的目标包括扩展模式匹配以表达更复杂、可组合的数据查询,同时不改变类型模式的语法或语义。该提案建立在instanceof的模式匹配之上,将于2021年在JDK16中交付。未来的计划可能需要扩展记录模式,使其具有数组模式和可变参数模式等功能。记录模式是Amber项目的一部分,该项目旨在探索和培养更小的、面向生产力的Java特性。ForeignFunctionsandMemoryAPI(https://openjdk.org/jeps/424)的预览,它将介绍一个API,Java程序可以通过该API与Java运行时之外的代码和数据进行互操作。通过高效地调用外部函数(即JVM之外的代码)和安全地访问外部内存(即不受JVM管理的内存),API使Java程序能够在没有Java原生机器接口的情况下调用原生库和处理原生数据(JNI)的危险和漏洞。ForeignFunctionsandMemoryAPI结合了两个早期的孵化API:ForeignMemoryAccessAPI和ForeignLinkerAPI。外部函数和内存API之前在JDK17中孵化,并在JDK18中重新计算。该提案的目标包括易用性、性能、通用性和安全性。VirtualThreads的预览(https://openjdk.org/jeps/425),这是一种轻量级线程,可以显着减少编写、维护和观察高吞吐量并发应用程序的工作量。目标包括使以简单的请求线程样式编写的服务器应用程序能够以接近最佳的硬件利用率进行扩展,并使使用java.langThreadAPI的现有代码能够采用虚拟线程并进行最少的更改,并使用现有的JDK工具进行故障排除、调试和分析虚拟线程。本提议的目标不是改变Java中的基本并发模型,也不是在Java语言或Java库中提供新的数据并行结构。删除旧的线程实现或静默地将现有应用程序迁移到虚拟线程也不是目标。switch表达式和语句模式匹配的第三个预览(https://openjdk.org/jeps/427),将模式匹配扩展到switch,允许表达式针对多个模式进行测试,每个模式都有特定的操作,因此面向复杂的数据可以简洁安全地表达查询。此功能之前已在JDK17和JDK18中进行了预览。第三次预览将添加一些改进,包括用switch块中的when子句替换受保护的模式。Additionally,theruntimesemanticsofmodeswitchesaremoreconsistentwithtraditionalswitchsemanticswhentheselectorexpressionevaluatestonull.该计划的目标包括通过允许模式出现在case标签中来扩展switch表达式和语句的表达能力和适用性。其他目标包括允许开发人员在需要时放松switch历史上的零敌意,提高switch语句的安全性,并确保现有的switch表达式和语句继续编译而无需更改并以相同的语义执行。第四个是向量向量API(https://openjdk.org/jeps/426),它将向量计算表示为最佳向量指令,这些指令在运行时可靠地编译为支持的CPU架构,从而实现比同等标量计算更好的性能。undefined