摘要:
虚拟机是如何判断一个对象已经死去呢?大部分人都回答是引用计数算法。1. 引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器值就减1,任何时刻计数器值为0的对象就是不可能再被使用的。引用计数法的实现简单,判定效率比较高,但是java中并没有选择引用计数法来管理内存,其中主要的原因是它很难解决对象之间的相互循环引用问题。objA.instance=objB;objB.instance=objA;除此之外,这两个对象再无任何引用,实际上这两个对象已经不可能再被访问,但是它们相互引用,引用计数器无法通知GC收集器回收它们。2. 根搜索算法java c#以 阅读全文