编程语言
首页 > 编程语言> > java – 垃圾收集的对象数

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