虚拟线程、switch表达式的模式匹配、vector API和Linux/RISC-V端口将用于Java 19,这是标准Java的非LTS版本,将于9月发布。

定于今年9月发布的Java Development Kit 19现在正式提出了五项功能。最近新增的三个功能,一个外部函数和内存API、虚拟线程和模式匹配(所有预览),将之前提到的两个功能、一个vector API(第四个孵化器中)和一个JDK端口连接到开源Linux/RISC-V指令集架构(ISA)中。

根据正在进行的增强Java的计划,JDK 19,或者简单地说Java 19,可能拥有大量功能,从通用泛型到值对象。JDK 19将紧随3月22日抵达的JDK 18。标准Java的发布周期为六个月。

OpenJDK开发人员已经发布了JDK 19的正式发布时间表,将于9月20日作为生产版本发布,之前将于6月9日和7月21日进行升级,并将于8月11日和8月25日发布候选版本。

JDK 19的早期访问版本可以从JDK访问: http://jdk.java.net/19/ 。建议的JDK 19功能包括:

  • 一个外部函数和内存API的预览,它将引入一个API,通过该API,Java程序可以在Java运行时之外与代码和数据进行互操作。通过高效地调用外部函数(即Java运行时之外的代码)和安全地访问外部内存(即不由JVM管理的内存),API使Java程序能够调用本机库并处理本机数据,而不存在Java本机接口(JNI)的危险和脆弱性。foreign function and memory API结合了两个早期的孵化API,即foreign memory access API和foreign linker API。外来函数和内存API之前在JDK 17中孵化,并在JDK 18中重新计算。该提案的目标包括易用性、性能、通用性和安全性。
  • 虚拟线程的预览,这是一种轻量级线程,可以显著减少编写、维护和观察高吞吐量并发应用程序的工作量。目标包括使以简单的每请求线程风格编写的服务器应用程序能够以接近最佳的硬件利用率进行扩展,使现有的代码能够使用java.lang Thread API采用虚拟线程,改动最小,并使用现有JDK工具对虚拟线程进行故障排除、调试和评测。本提案的目标不是改变Java中的基本并发模型,也不是在Java语言或Java库中提供新的数据并行结构。它的目标也不是移除线程的传统实现,或者静默地将现有应用程序迁移到使用虚拟线程。
  • switch 表达式和语句的模式匹配的第三个预览,将模式匹配扩展到switch,以允许根据多个模式测试一个表达式,每个模式都有一个特定的操作,因此可以简洁而安全地表达复杂的面向数据的查询。这一功能之前在JDK 17和JDK 18中进行了预览。第三次预览将添加一些改进,包括在开关块中用 when 子句替换受保护的模式。此外,当选择器表达式的值为 null 时,模式开关的运行时语义与传统开关语义更为一致。该计划的目标包括通过允许模式出现在案例标签中,扩展开关表达式和语句的表达性和适用性,允许在需要时放松开关的历史无效性,增加开关语句的安全性,并确保现有的switch表达式和语句继续编译而不做任何更改,并以相同的语义执行。
  • 第四种是vector API,它可以表达矢量计算,在运行时可靠地编译为支持的CPU架构上的最佳矢量指令,从而实现优于等效标量计算的性能。使用API的开发人员获得了一种用Java编写复杂向量算法的方法,使用HotSpot auto vectorizer,但使用的用户模型使向量化更加可预测和健壮。之前,vector API被培育成JDK 16、JDK 17和JDK 19。针对JDK 19提出的API的改进包括,根据外部函数和内存API预览的定义,在MemorySegment之间加载和存储向量。JDK 19还将添加两个交叉通道向量操作,压缩和扩展,以及一个互补的向量掩码压缩操作。压缩向量操作将由掩码选择的源向量的车道按车道顺序映射到目标向量,而展开操作则相反。压缩操作在过滤查询结果时很有用。除了vector API之外,还将扩展逐位积分lanewide操作,包括计算一位的数量、反转位的顺序以及压缩和扩展位等操作。该API的目标包括简洁明了、平台无关、在x64和AArch64体系结构上具有可靠的运行时和编译性能,以及在向量计算无法在运行时完全表示为向量操作序列的情况下实现“优雅”降级。
  • 有了Linux/RISC-V端口,Java将获得对硬件指令集的支持,这种硬件指令集已经得到了各种语言工具链的支持。RISC-V实际上是一个相关ISA家族。Linux/RISC-V端口只支持RISC-V的RV64GV配置,RISC-V是一种包含向量指令的通用64位ISA。Java开发人员将来可能会考虑其他RISC-V配置。该端口将支持以下热点VM选项:模板解释器、C1(客户端)JIT编译器、C2(服务器)JIT编译器,以及所有当前的主线垃圾收集器,包括ZGC和Shenandoah。实际移植几乎完成;JDK增强计划(JEP)的重点是将端口集成到JDK主线存储库中。

JDK 19:针对Java 19的功能相关推荐

  1. 化学专业尽早转行_尽早查看针对Java 11的功能

    化学专业尽早转行 随着JDK 10即将进入其候选发布阶段 ,通过JDK 11观察一下之后将会发生什么是很有趣的. 在撰写本文时,四个JEP ( JDK增强建议 )已正式成为JDK 11的目标(可能会出 ...

  2. 尽早查看针对Java 11的功能

    随着JDK 10即将进入其发布候选阶段 ,有趣的是,开始通过JDK 11观察之后会发生什么. 在撰写本文时,四个JEP ( JDK增强建议 )已正式成为JDK 11的目标(可能会出现). 这篇文章总结 ...

  3. java的网络功能与编程_Java的网络功能与编程(转载)

    Java的 网络 功能与编程 徐迎晓 (上海大学计算中心25#) 摘  要:Java语言是Internet上最热门的编程语言,本文针对 Java的 网络 功能,对Java从 网络 上获取图象.声音. ...

  4. JDK 19 / Java 19 正式发布

    近日,甲骨文公司正式发布Java 19,这是备受欢迎的编程语言和开发平台推出的全新版本.Java19 (Oracle JDK 19) 在性能.稳定性和安全性方面进行了数千种改进,包括进一步优化平台的增 ...

  5. JDK 19 / Java 19 正式GA

    JDK 19 / Java 19 已正式发布. 新版本总共包含 7 个新的 JEP: 405: Record Patterns (Preview) 422: Linux/RISC-V Port 424 ...

  6. 玩C一定用得到的19款Java开源Web爬虫

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕 ...

  7. Java 19 正式发布,改善多线程、并发编程难度

    Java 19 在数分钟前正式发布,这是一个非 LTS(长期支持)版本.该版本的七项功能包括结构化并发.记录模式.外部函数和内存 API 的预览,以及对开源 Linux/RISC-V 指令集架构 (I ...

  8. Java 18 还未用上,最新Java 19 则出来了

    前言 铁打的 Java,流水的版本,而不久前,Java 18 才正式发布还没用呢,这遵循 Oracle 六个月发一版本的频率,Java 19将在今年 9 月出炉但是没想到.这不还没等众多开发者用上 J ...

  9. 19款Java开源Web爬虫

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕 ...

最新文章

  1. 分享一些 WINDOWS 资源站点(备用)
  2. Function Component 与 Class Component 有何不同?
  3. 实用的 GitHub 仓库搜索技巧
  4. ApplicationContext和BeanFactory
  5. Linuxcurl命令参数详解
  6. python学习socket的客户端实现
  7. Wordfence Premium 安全防护 WordPress插件
  8. 内嵌tomcat启动速度慢
  9. 计算机网络管理4级有什么用,计算机网络管理二级4浅析.doc
  10. espcms联动筛选功能开发
  11. System与Runtime类
  12. Linux 下rzsz最新安装方法
  13. 攻防世界-杂项-simple_transfer
  14. 漳州计算机报名时间2015年,漳州市2015年国民经济和社会发展统计公报
  15. 微信小程序云函数使用教程【超详细】
  16. 机器学习D14——随机森林
  17. 每日三省吾身:2014-1-16
  18. 泛型类、泛型方法的使用与理解
  19. 不属于mysql事物的特性_mysql基础---事务 事务的四大特性(ACID) 四种隔离级别
  20. 阈值法进行边缘检测matlab

热门文章

  1. 店铺创业选址的黄金法则
  2. Asp.Net初学小结
  3. JAVA计算机毕业设计校园二手书交易平台(附源码、数据库)
  4. 一文看懂:芯片IC的封装/测试流程
  5. 快手一键取关所有关注的人JS代码
  6. css盒子绝对定位,相对定位,固定定位
  7. ORACLE考试例题
  8. NVIDIA开启独显
  9. IO-Link和CC-Link的区别是什么?
  10. php 圆周率指定位数,圆周率1500多位