JDK 16: new function of Java 16 - InfoWorld

Jiedao jdon 2021-05-04 14:47:24
jdk new function java infoworld

Can be in jdk.java.net You can find on Linux,Windows and MacOS Of JDK 16 Early versions . And JDK 15 equally ,JDK 16 It's going to be a short-term version , Six months of support . Will be in 2021 year 9 Released on JDK 17 It will be a long-term support (LTS) edition , Will have years of support . Current LTS edition JDK 11 Has been in 2018 year 9 Published in .

JDK 16 Will be the standard Java Version reference implementation , Next year 3 The coming of the month .

By 10 month 8 Japan , Eight proposals are officially aimed at JDK16.Java16 The new features include :

  • take ZGC(Z Garbage collector ) Thread stack processing From a safe point safepoints Move to the concurrency phase . The objectives of the program include ZGC Delete thread stack processing in safe point . Make stack processing lazy , Collaboration , Concurrency and increment ; from ZGC Safe point removes all other per thread root processing ; And for the rest of HotSpot VM The subsystem provides a mechanism to delay processing the stack . such ,ZGC send HotSpot Medium GC Pause and scalability issues are in the past . up to now , Expanding with heap size and Metaspace size GC The operation has moved out of the safe point operation and into the concurrent phase . These include markers , relocation , Reference processing , Class unloading and most root handling .GC The only remaining activity in a security point is a subset of root processing and time limited tag termination operations . These roots include Java Thread stack and other thread roots , There are problems with these roots , Because they grow with the number of threads . In order to go beyond the current situation , Every thread processing, including stack scanning, must be moved to the concurrent phase . Use this program , The throughput cost of improved latency should be negligible , And on a typical computer ZGC The time spent in a safe point should be less than one millisecond .
  • Elastic element space capability , It can put unused HotSpot VM Class metadata ( Meta space ) Memory returns to the operating system more quickly , This reduces the footprint of the meta space and simplifies the meta space code , This reduces maintenance costs . There are a lot of memory usage problems out of the heap in the meta space . The plan calls for replacing the existing memory allocator with a partner based allocation scheme , Provides an algorithm that divides memory into multiple partitions to satisfy memory requests . This method is already in Linux Kernel, etc , It will make it possible to allocate memory in smaller blocks to reduce class loader overhead . There will also be less debris . Besides , Memory commitments from the operating system to memory management will be delayed as needed , Reduced footprint for loaders that start with large stages but do not use them immediately or may not use them fully . To take full advantage of the flexibility provided by partner allocation , Arrange the meta space memory into uniform size particles , These particles can commit and not commit independently of each other .
  • Enable C ++ 14 Language function , To allow JDK C ++ The source code uses C ++ 14 function , And provide information about HotSpot VM A specific guide to which of these features can be used in the code . adopt JDK 15,JDK in C ++ The language functions used by the code have been limited to C ++ 98/03 Language standards . Use JDK 11, The source code has been updated , To support the use of a newer version of C ++ Standards . This includes being able to use support C ++ 11/14 Language features of the latest version of the compiler to build . This proposal does not suggest that HotSpot In addition to the use of C ++ Change the style or usage of the code . But use C ++ Language function , You need to make some build time changes , Depending on the platform compiler .
  • The vector of the incubator stage API, among JDK An incubator module will be installed ,jdk.incubator.vector, To express what can be supported in CPU Vector computation compiled as the best vector hardware instruction on architecture , To achieve better performance than equivalent scalar computation . vector API Provides a way to use Java The mechanism for writing complex vector algorithms , The mechanism uses HotSpot VM Vectorization of pre-existing support in , But its user model makes vectorization more predictable and reliable . The goal of the proposal is to provide a clear and concise API To express a series of vector calculations , By supporting multiple CPU Architecture independent of platform , stay x64 and AArch64 Architecture provides reliable runtime compilation and performance . Graceful demotion is also a goal ,
  • take JDK Migration to Windows / AArch64 platform . With the new server class and consumer class AArch64(ARM64) Hardware release , Because of demand ,Windows / AArch64 Has become an important platform . Although the migration itself is almost complete , But the focus of the proposal is to integrate the ports into the mainline JDK Repository .
  • stay x64 and AArch64 Architecturally , take JDK Migration to Alpine Linux And other uses musl As its main C Library Linux Distribution version .Musl yes ISO C and Posix The standard library function described in the standard Linux Realization . because Alpine Linux The image is smaller , So it's deployed in the cloud , It is widely used in microservices and container environments .Linux Of Docker Image less than 6MB. In this setting, let Java Out of the box operation , Will allow Tomcat,Jetty,Spring And other popular frameworks here ​​ Some environments run locally . By using jlink Reduce Java The size of the runtime , Users can create even smaller images tailored to run specific applications .
  • OpenJDK Source code library from Mercurial Migrate to Git. What drives this effort is the size of version control system metadata and the advantages of available tools and hosting .
  • Migrate to GitHub, And from the Mercurial To Git The migration of ,JDK 16 Source code repositories are located on popular code sharing sites .Mercurial JDK and JDK-sandbox to Git,GitHub and Skara The transition has been completed in 9 month 5 Day to complete , It's now open for contributions .  


本文为[Jiedao jdon]所创,转载请带上原文链接,感谢

  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的真实想法