Java中,如果对象A引用了对象B,对象B又直接或间接引用了对象A。(有一种情况是Hibernate中的主从对象双向关联)
那么,在没有其它对这两个对象的引用的情况下,这两个对象能否被GC回收?也就是说能否会产生内存泄露?
换个角度的问法就是:Java的GC是如何判断某个对象有没有被别的对象引用的?
Java中,如果对象A引用了对象B,对象B又直接或间接引用了对象A。(有一种情况是Hibernate中的主从对象双向关联)
那么,在没有其它对这两个对象的引用的情况下,这两个对象能否被GC回收?也就是说能否会产生内存泄露?
换个角度的问法就是:Java的GC是如何判断某个对象有没有被别的对象引用的?
现在的GC都采用分代收集的方式,不同的区采用不同的算法,大致有:复制,标记-清扫,标记-压缩,标记-清扫-压缩等。你可以参看:[url]http://speed847.iteye.com/blog/373278[/url]