这块要详细拿出来说一下。
这两篇文章,详细介绍了ZGC。第二个是pdf文档,可以下载下来详细看。
这个可以在官方文档(https://wiki.openjdk.java.net/display/zgc/Main)上看到,目前jdk11目前只支持linux。
JDK11只支持Linux64位,到jdk4开始支持windows和macOS。
我们来看看ZGC都有哪些目标,目标也就是ZGC存在的意义。
ZGC不分代了。
我们以前分代的原因是什么?因为大部分对象都有朝生夕死的特点。所以朝生夕死的对象可能就要求尽快被清理掉。如果不分代了,结果就是,可能更频繁的触发gc,因为里面有很多朝生夕死的对象。然后每次gc,都会遍历所有的对象
ZGC为什么部分带了呢?因为分代实现起来比较麻烦,作者就先实现了一个比较简单可用的单代版本,后续优化可能会分代。