wudi7965
wudi7965
2010-06-30 15:32

两个对象互相引用,能否被GC回收?

已采纳

Java中,如果对象A引用了对象B,对象B又直接或间接引用了对象A。(有一种情况是Hibernate中的主从对象双向关联)

那么,在没有其它对这两个对象的引用的情况下,这两个对象能否被GC回收?也就是说能否会产生内存泄露?

换个角度的问法就是:Java的GC是如何判断某个对象有没有被别的对象引用的?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • myali88 myali88 11年前

    现在的GC都采用分代收集的方式,不同的区采用不同的算法,大致有:复制,标记-清扫,标记-压缩,标记-清扫-压缩等。你可以参看:[url]http://speed847.iteye.com/blog/373278[/url]

    点赞 评论 复制链接分享
  • myali88 myali88 11年前

    [quote]
    Java的GC是如何判断某个对象有没有被别的对象引用的?
    [/quote]
    现在的GC基本上不采用这种“引用计数法”的算法回收对象了,一个原因就是这种算法对循环引用无能为力。

    点赞 评论 复制链接分享

相关推荐