java – 垃圾收集的对象数
作者:互联网
鉴于:
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
F. 6
回答是E.为什么?
解决方法:
在Line14之后,只有原始i2对象存活,没有引用指向原始i1和i3,因此它们有资格使用垃圾收集器,并且此对象具有基本类型,长字段,丢失它,因此2 * 2 = 4;
标签:java,object,inheritance,garbage 来源: https://codeday.me/bug/20190717/1490397.html