在任何回收过程中,G1都可以回收老年代中一些完全空置的、大的区域。 这可以避免许多其他不必要的垃圾回收,不需要太多努力就可以释放大量空间
G1可以选择尝试同时对Java堆上的重复字符串进行重复数据删除。
从老年代回收空的大型对象始终处于启用状态。
您可以使用 -XX:-G1EagerReclaimHumongousObjects 选项禁用此功能。 默认情况下禁用字符串重复数据删除。 您可以使用选项 -XX:+G1EnableStringDeduplication 启用它。
Z垃圾收集器Z垃圾收集器(ZGC)是一个可伸缩的低延迟垃圾收集器。ZGC并发地执行所有昂贵的工作,而不需要停止应用程序线程的执行超过10ms,这使得它适合于需要低延迟或使用非常大的堆(TB级)的应用程序。
Z垃圾收集器是一个实验性特性,可以通过命令行选项 -XX:+UnlockExperimentalVMOptions -XX:+UseZGC 启用。
设置堆大小ZGC最重要的调优选项是设置最大堆大小(-Xmx)。
设置并发GC线程数可能需要考虑的第二个调优选项是设置并发GC线程的数量(-XX:ConcGCThreads)。
显式垃圾回收应用程序与垃圾回收交互的另一种方式是使用 System.gc() 显式调用full垃圾回收。
类元数据(Class Metadata)Java类在 Java Hotspot虚拟机中有一个内部表示,称为类元数据。