黑马程序员技术交流社区

标题: JAVA的JVM垃圾回收算法问题 [打印本页]

作者: 李春生    时间: 2012-10-30 23:58
标题: JAVA的JVM垃圾回收算法问题
用引用计数法时,引用计数陷入死循环怎么处理
例如
class A{     
       private B b;
           }
class B{
         private A a;
           }

作者: 徐强    时间: 2012-11-1 16:45
  1. import java.util.ArrayList;
  2. import java.util.List;

  3. abstract class Root{
  4.     private List<Object> incomingReferenceList = new ArrayList<Object>();
  5.    
  6.     public void addIncomingReferenceObject(Object obj){
  7.         if(!incomingReferenceList.contains(obj))
  8.             incomingReferenceList.add(obj);
  9.     }
  10.    
  11.     public int getReferencedCount(){
  12.         return incomingReferenceList.size();
  13.     }
  14. }

  15. class A extends Root{
  16.     private B b;
  17.    
  18.     public void setB(B b){
  19.         this.b = b;
  20.         b.addIncomingReferenceObject(this);
  21.     }
  22. }

  23. class B extends Root{
  24.     private A a;
  25.    
  26.     public void setA(A a){
  27.         this.a = a;
  28.         a.addIncomingReferenceObject(this);
  29.     }
  30. }
复制代码
维护一个反向引用列表就行了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2