在以下我想了解的例子中。他们说(Core Java SCJP Quiz Questions (Google Play))创建 5 对象, 2 用于垃圾收集器。
当我试图解决它时。我为 3 对象和 1 出来了垃圾收集器(我知道错误)。这三个对象是:
College [] c = new College[3]
; c[0] = new College();
College co = new College();
co= null
用于垃圾收集器。package example;
class Class {
int [] cls = {1,2,3,4};
}
public class College{
public static void main(String [] args){
College [] c = new College[3];
c[0] = new College();
College co = new College();
c[1] = co;
co= null;
c[1] = null;
}
}
c[0] = new College();
College [] c = new College[3]
是College
类型的数组,但尚未包含任何对象。是对还是错?从现在开始,我将坚持使用官方的Java书籍。
答案 0 :(得分:4)
int [] cls = {1,2,3,4};
这会创建一个int[]
对象。
5个创建的对象是什么
创建了四个对象[除非他们计算String[] args
,否则他们可能不应该这样做。
和2发送给GC。
没有任何内容被发送到GC'通过您发布的代码,但是当此类代码位于方法范围内时所有在退出时都符合GC的条件,并且无效的引用使之前引用的对象也符合GC的条件,如果没有其他参考。
我不明白。如果我们已经在数组中创建了3个对象。那么我们为什么要实例化c [0] = new College();
我们没有在数组中创建3个对象'。我们创建了一个包含三个空插槽的数组。
我明白学院[] c =新学院[3]是一个类型学院的阵列,但还没有任何对象。是对还是错?
正确。