您的位置:首页 > 其它

垃圾回收之判断对象否需要被回收(根搜索算法和引用搜索算法)

2018-01-25 15:56 435 查看
根搜索算法(JAVA的虚拟机用的是这个)

可以参考这个 http://blog.csdn.net/qq_15022971/article/details/79162126
引用搜索算法:是常被初学JAVA者误解,java的垃圾回收在判断一个对象是否为可以被回收的对象时,常被误以为:没有引用指向

这个对象了,GC线程就会把他当作垃圾回收掉。

实则不然,比如  :

一个类叫Reference 里面包含一个Reference 类型的变量 instance;

 Reference ref1=new Reference();

Reference ref2=new Reference();

          ref1.instance=ref2;

          ref2.instance=ref1;

         ref1=null;
         
         ref2=null;

system.gc();

这样的循环引用,两个对象分别都被彼此的属性引用着,但是又都是NULL,如果根据引用搜索算法,这两个对象是不会被垃圾

回收的,实则不然,

根搜索算法和引用搜索算法, 引用搜索算法主要就是解决不了循环引用的问题。
  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: