有如下代码:
public class TestOOM{
public static void main(String args[]){
while(true){
Object object = new Object();
}
}
}
这种情况下,jvm的垃圾回收机制会对其中的object进行垃圾回收吗?
如果不会,那我们平时写的代码for循环、while循环不在少数,而且也没有对其中的引用写类似于 object = null的断开实例的代码,那岂不是一个系统运行的越久,堆内存占用的就越大?
如果会,那是什么原理,按照可达性算法(GCRoots)的概念,只有当对象在GCRoots的引用链中不可达时,才会判定为垃圾对象,像是上述代码中的object引用,仍然可达,照理说不会被回收啊?