我知道当一个内存中的对象没有被任何其他对象引用时,它就是java中垃圾收集的候选对象。但是,如果有一堆对象相互引用但是处于非活动状态,那么这些对象的内存是否会被垃圾收集器清除?
答案 0 :(得分:1)
Java虚拟机不使用引用计数。他们使用Mark-Sweep和复制算法进行垃圾收集,保证删除任何无法通过对象引用访问的对象,甚至是循环。
非活动或未使用但仍可通过对象引用访问的对象永远不会被垃圾回收。他们不会被清除。 Java中的内存泄漏是由诸如未使用的事件处理程序,集合等对象引起的。
您可以在此处详细了解:http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html