当前位置: 代码迷 >> J2SE >> 垃圾回收有关问题
  详细解决方案

垃圾回收有关问题

热度:210   发布时间:2016-04-24 02:28:53.0
垃圾回收问题
有如下问题,请大家解释一下,谢谢:
Java code
interface Animal{    void makeNoise();}class Horse implements Animal{    Long weight=1200L;    public void makeNoise(){        System.out.println("vinny");    }}public class lcelandic  extends Horse{    /**     * @param args the command line arguments     */    public static void main(String[] args) {        // TODO code application logic here        lcelandic i1=new lcelandic();        lcelandic i2=new lcelandic();        lcelandic i3=new lcelandic();        i3=i1;i1=i2;i2=null;i3=i1;            }}


问:When line 14(也就是 i3=i1;i1=i2;i2=null;i3=i1;)is reached ,how many objects are eligible for the garbage collector?
答案是2个,但我不知道为什么,请高手解答一下

------解决方案--------------------
设i1 i2 i3代表的内存区域分别为A B C
i3=i1; //i3 i1均引用A C没有被引用
i1=i2; // i1 和i2均引用B 
i2=null; // i1指向B 
i3=i1; //i3和i1均引用B A没被引用
A和C会被收集
  相关解决方案