JDK 16:Java 16的新功能 - InfoWorld

解道jdon 2021-05-04 14:46:58
java 功能 jdk 新功能 infoworld


可以在jdk.java.net上找到适用于Linux,Windows和MacOS的JDK 16的早期版本。与JDK 15一样,JDK 16将是一个短期版本,支持六个月。将于2021年9月发布的JDK 17将是一个长期支持(LTS)版本,将获得数年的支持。当前的LTS版本JDK 11已于2018年9月发布。

JDK 16将作为标准Java版本的参考实现,将在明年3月到来。

截至10月8日,八项提案正式针对JDK16。Java16的新功能包括:

  • ZGC(Z垃圾收集器)线程堆栈处理从安全点safepoints迁移到并发阶段。该计划的目标包括从ZGC安全点中删除线程堆栈处理。使堆栈处理变得惰性,协作,并发和增量;从ZGC安全点删除所有其他每线程根处理;并为其他HotSpot VM子系统提供了一种机制来延迟处理堆栈。这样,ZGC使HotSpot中的GC暂停和可伸缩性问题成为过去。到目前为止,随着堆大小和元空间大小而扩展的GC操作已经从安全点操作中移出并进入并发阶段。这些包括标记,重定位,参考处理,类卸载和大多数根处理。GC安全点中唯一仍进行的活动是根处理和有时间限制的标记终止操作的子集。这些根目录包括Java线程堆栈和其他线程根目录,这些根目录存在问题,因为它们随线程数的增长而扩展。为了超越当前状况,必须将包括堆栈扫描在内的每线程处理移至并发阶段。使用此计划,改进的延迟的吞吐成本应该是微不足道的,并且在典型计算机上的ZGC安全点内花费的时间应少于一毫秒。
  • 弹性元空间能力,它可以将未使用的HotSpot VM类元数据(元空间)内存更迅速地返回给操作系统,从而减少了元空间的占用空间并简化了元空间代码,从而降低了维护成本。元空间存在大量的堆外内存使用问题。该计划要求用基于伙伴的分配方案替换现有的内存分配器,提供一种将内存划分为多个分区以满足内存请求的算法。这种方法已在Linux内核等地方使用,它将使在较小的块中分配内存以减少类加载器的开销变得切实可行。碎片也将减少。此外,从操作系统到内存管理领域的内存承诺将根据需要延迟执行,减少了从大型舞台开始但不立即使用它们或可能未完全使用它们的装载机的占地面积。为了充分利用伙伴分配所提供的弹性,将元空间内存排列成大小统一的颗粒,这些颗粒可以彼此独立地进行提交和不提交。
  • 启用C ++ 14语言功能,以允许在JDK C ++源代码中使用C ++ 14功能,并提供有关在HotSpot VM代码中可以使用其中哪些功能的特定指南。通过JDK 15,JDK中C ++代码使用的语言功能已限于C ++ 98/03语言标准。使用JDK 11,源代码已更新,以支持使用更新版本的C ++标准进行构建。这包括能够使用支持C ++ 11/14语言功能的最新版本的编译器进行构建。本提案不建议在HotSpot之外使用的C ++代码的样式或用法更改。但是要利用C ++语言功能,需要进行一些构建时更改,具体取决于平台编译器。
  • 孵化器阶段的矢量API,其中JDK将装有一个孵化器模块,jdk.incubator.vector,以表达可在支持的CPU架构上编译为最佳矢量硬件指令的矢量计算,以实现优于等效标量计算的性能。向量API提供了一种使用Java编写复杂向量算法的机制,该机制使用HotSpot VM中预先存在的支持进行向量化,但其用户模型使向量化更可预测且更可靠。该提案的目标包括提供一个清晰简洁的API来表达一系列矢量计算,通过支持多种CPU架构而与平台无关,在x64和AArch64架构上提供可靠的运行时编译和性能。优雅降级也是一个目标,
  • 将JDK移植到Windows / AArch64平台。随着新的服务器类和消费类AArch64(ARM64)硬件的发布,由于需求,Windows / AArch64已成为重要的平台。尽管移植本身已经基本完成,但该建议的重点是将端口集成到主线JDK存储库中。
  • 在x64和AArch64体系结构上,将JDK移植到Alpine Linux和其他使用musl作为其主要C库的Linux发行版。Musl是ISO C和Posix标准中描述的标准库功能的Linux实现。由于Alpine Linux的映像较小,因此已在云部署,微服务和容器环境中广泛采用。Linux的Docker映像小于6MB。在这样的设置中让Java开箱即用地运行,将允许Tomcat,Jetty,Spring和其他流行的框架在这​​些环境中本机运行。通过使用jlink减小Java运行时的大小,用户可以创建专门为运行特定应用程序而定制的甚至更小的映像。
  • OpenJDK源代码库从Mercurial迁移到Git。推动这一努力的是版本控制系统元数据大小以及可用工具和托管方面的优势。
  • 迁移到GitHub,与从Mercurial到Git的迁移有关,JDK 16源代码存储库位于流行的代码共享站点上。Mercurial JDK和JDK-sandbox的向Git,GitHub和Skara的过渡已于9月5日完成,现已开放供稿。  

 

版权声明
本文为[解道jdon]所创,转载请带上原文链接,感谢
https://www.jdon.com/55148

  1. ASP调用SDK微信分享好友、朋友圈
  2. ASP calls SDK wechat to share friends and circle of friends
  3. SpringCloud(六)Bus消息总线
  4. 详解JavaScript中的正则表达式
  5. Springcloud (6) bus message bus
  6. Explain regular expressions in JavaScript
  7. Java 响应式关系数据库连接了解一下
  8. Java14它真的来了, 真是尾气都吃不到了
  9. 视频:使用Docker搭建RabbitMQ环境
  10. Java responsive relational database connection
  11. Java14 it's really coming. I can't eat the exhaust
  12. Video: building rabbitmq environment with docker
  13. SpringCloud(六)Bus消息总线
  14. 详解JavaScript中的正则表达式
  15. Springcloud (6) bus message bus
  16. Explain regular expressions in JavaScript
  17. Docker实战:用docker-compose搭建Laravel开发环境
  18. Docker: building laravel development environment with docker compose
  19. 求助,JAVA如何获取系统当前所有进程
  20. 有人用过JMeter或用HttpUnit写过测试吗????
  21. Help, Java how to get all the current processes of the system
  22. Has anyone ever used JMeter or written tests in httpUnit????
  23. Living in a mountain village in late spring
  24. Partridge day, spring of HKUST
  25. JavaScript异步编程4——Promise错误处理
  26. 海康摄像SDK开发笔记(一):海康威视网络摄像头SDK介绍与模块功能
  27. JavaScript asynchronous programming 4 -- promise error handling
  28. Haikang video SDK development notes (1): introduction and module functions of Hikvision webcam SDK
  29. JOP:用于FPGA的嵌入式实时系统中的Java优化处理器内核
  30. Spring Boot源码:使用MongoDB MongoTemplate公开REST在几分钟内实现CRUD功能
  31. Spring Boot应用程序事件教程 - reflectoring
  32. 带有Resilience4j断路器的Spring云网关 - rome
  33. 经验分享:Apache Kafka的缺点与陷阱 - Emil Koutanov
  34. 通过Spring Boot Webflux实现Reactor Kafka
  35. 从Java 8升级到Java 11应该注意的问题
  36. Jop: Java optimized processor core for FPGA embedded real time system
  37. Spring boot source code: use mongodb mongotemplate to open rest to realize crud function in a few minutes
  38. Spring boot application event tutorial - reflecting
  39. Spring cloud gateway with resilience4j circuit breaker - ROM
  40. Experience sharing: shortcomings and pitfalls of Apache Kafka - Emil koutanov
  41. Realization of reactor Kafka through spring boot Webflux
  42. RPC框架设计----Socket与I/0模型
  43. Problems in upgrading from Java 8 to Java 11
  44. RPC framework design -- socket and I / 0 model
  45. RPC框架设计----I/0模型
  46. RPC framework design: I / 0 model
  47. RPC框架设计----NIO编程缓冲区Buffer
  48. RPC框架设计----NIO编程缓冲区Buffer
  49. RPC framework design -- NiO programming buffer
  50. RPC framework design -- NiO programming buffer
  51. Java多线程基础
  52. Java multithreading Foundation
  53. 码农飞升记-00-Java发展历程
  54. Development history of coder-00-java
  55. 码农飞升记-00-Java发展历程
  56. Development history of coder-00-java
  57. Spring and Autumn Moon
  58. Node.js与Spring Boot比较? - Ryan Gleason
  59. Spring WebFlux的明显陷阱 - ŁukaszKyć
  60. Spring创始人Rod大叔对YAML的真实想法