火车算法如何解决循环调用问题

这里就不讲火车算法的原理了。
火车算法是g1收集器使用的gc算法

clipboard.png

D,E,C是需要相互调用的三个对象。除此之外没有其他引用。但是当算法执行扫描第一块内存时时,D有E的引用,E有c的引用,c有D的引用。D和E都会保留下来。当第二次扫描时,C也有D的引用而被保留下来.这样岂不是根本没回收到垃圾

阅读 2.4k
2 个回答

什么火车算法名词不太懂,在我看来这就是一个循环引用问题。在某些垃圾收集算法里面,循环引用的确会导致内存泄漏。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题