有如下问题,请大家解释一下,谢谢: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个,但我不知道为什么,请高手解答一下
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个,但我不知道为什么,请高手解答一下
i3=i1; //i3 i1均引用A C没有被引用
i1=i2; // i1 和i2均引用B
i2=null; // i1指向B
i3=i1; //i3和i1均引用B A没被引用
A和C会被收集