我正在学习Java垃圾回收的过程以及不同适用于GC的场景。
以下是我感到困惑的场景:
在第一个循环中,我在每个循环中添加新对象,而在最新的循环中,只是打印值,那么,我添加到列表中的这些对象适用于GC吗?
这句话是什么意思?
“当一个实例可以成为垃圾收集的候选对象时,这是一个更好的例子。实例的所有属性都可以存储在寄存器中,然后将访问寄存器以读取值。将来没有情况会将值写回到实例中。尽管值可以在将来使用,但此实例仍可标记为垃圾收集的候选对象。”
以下是我感到困惑的场景:
List<X> listX = new ArrayList<X>();
for(int a = 0;a<100;a++){
listX.add(new X(a));
}
for (X xObject : listX) {
xObject.printValue();
}
在第一个循环中,我在每个循环中添加新对象,而在最新的循环中,只是打印值,那么,我添加到列表中的这些对象适用于GC吗?
这句话是什么意思?
“当一个实例可以成为垃圾收集的候选对象时,这是一个更好的例子。实例的所有属性都可以存储在寄存器中,然后将访问寄存器以读取值。将来没有情况会将值写回到实例中。尽管值可以在将来使用,但此实例仍可标记为垃圾收集的候选对象。”