鉴于:
interface Animal { void makeNoise(); }
class Horse implements Animal {
Long weight = 1200L;
public void makeNoise() { System.out.println("whinny"); }
}
public class Icelandic extends Horse {
public void makeNoise() { System.out.println("vinny"); }
public static void main(String[] args) {
Icelandic i1 = new Icelandic();
Icelandic i2 = new Icelandic();
Icelandic i3 = new Icelandic();
i3 = i1; i1 = i2; i2 = null; i3 = i1; //<-- line 14
}
}
当到达第 14 行时,有多少对象符合垃圾收集器的条件?
A. 0
B.1
C.2
D. 3
E. 4
六楼
答案是E。为什么?
最佳答案
Line14之后,只有原来的i2对象是存活的,没有引用指向原来的i1和i3,所以它们有资格被垃圾收集器,而且这个对象有一个基类型,一个长字段,丢给它,所以2*2 = 4;
关于java - 垃圾收集对象的数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26263054/