运行一个非常简单的代码来尝试查看垃圾收集器的功能。
String a = null;
while ( true ) {
a = new String(" no... ");
}
我正在使用 ParallelGC。我打印了 GC 结果,这是第一个(次要)GC。
[GC [PSYoungGen: 16448K->1616K(19136K)] 16448K->1624K(62848K), 0.0022134 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
youngGen 下降了14880K
但是 fullHeap 下降了14872K
这是否意味着 8k 已经转移到终身制?我的理解是 GC 可能被称为“a”类的某些实例,必须被标记为活动并移至终身代。这种理解正确吗?还有,这是“漂浮垃圾”吗?随着时间的推移,任期代确实会被填满,并且需要 fullGC,但这确实需要一段时间。
另外,在这种特殊情况下,不应该收集整个次要集合,理想情况下没有任何东西进入任期代吗?所有这些都是短暂的物体。