鉴于:

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/

10-10 16:16