Java19两大新功能透露
Java 18 才正式发布,遵循 Oracle 六个月发一版本的频率,Java 19 将在今年 9 月出炉。
Java19两大新功能透露
据国外媒体Infoworld报道,根据正在进行的Java增强计划,Java19可能承载大量功能,包括从通用泛型到值对象。其中,Java19中官方明确提出的两个最新特征是:用于表达向量计算的Vectorapi,它将在Java的下一个版本中第四次孵化;将JDK连接到开源的Linux/RISC-V指令集架构(ISA)。
用于表达向量计算的VectorAPI可以可靠地编译成支持CPU架构的最佳矢量指令。使用该API的开发人员可以使用支持自动矢量化的HotSpot,基于用户模型在Java中编写复杂矢量算法,使矢量化更加可预测和稳定。
在开发和设计中,API的主要目标包括四个方面。第一,API能够清晰简洁地表达广泛的向量计算;第二,API与CPU架构无关,可以在支持向量指令的多个架构上实现;第三,在X64和AArch64架构上具有可靠的操作和编译性能;第四,它可以实现“优雅”的降级,以应对运行中矢量计算不能完全表达为矢量操作序列的情况。VectorAPI已被列入JDK16.JDK17和JDK19。
随着Linux/RISC-V的移植,Java将得到硬件指令集的支持,这已经得到了广泛的语言工具链的支持。事实上,RISC-V是一个相关的ISA系列。据官方报道,Linux/RISC-V端口将只支持RISC-V的RV64GV配置,这是一个通用的64位ISA,包括矢量指令。Java开发人员可能会考虑未来其他RISC-V的配置。
移植将支持以下Hot、C1(客户端)JIT编译器、C2(服务器)JIT编译器和包括ZGC和Shenandoah在内的所有当前主要垃圾收集器。实际移植工作已接近完成;JDK增强建议(JEP)的重点是将移植工作集成到JDK主线库中。
除上述两个特点外,ForeignFunction和MemoryAPI也可能出现在Java19中,允许Java程序与JVM运行时以外的代码和数据互操作。