Java 某个特定类型的数组中是否有任何空的值包含该类型的对象或空插槽?(垃圾收集器)

Java 某个特定类型的数组中是否有任何空的值包含该类型的对象或空插槽?(垃圾收集器),java,garbage-collection,Java,Garbage Collection,在下面的例子中,我试图理解。他们说创建了5个对象,2个是垃圾收集器 当我试图解决它的时候。我提出了3个对象和1个垃圾收集器,我知道这是错误的。这三个对象是: 学院[]c=新学院[3]; c[0]=新学院; 学院co=新学院; co=null表示垃圾收集器。 c只是一个参考。 问题 发送给GC的5个已创建对象和2个对象是什么。 我不明白。如果我们已经在数组中创建了3个对象。那么为什么我们要实例化c[0]=新学院; 我知道College[]c=newcollege[3]是一个类型的College数组

在下面的例子中,我试图理解。他们说创建了5个对象,2个是垃圾收集器

当我试图解决它的时候。我提出了3个对象和1个垃圾收集器,我知道这是错误的。这三个对象是:

学院[]c=新学院[3]; c[0]=新学院; 学院co=新学院; co=null表示垃圾收集器。 c只是一个参考。 问题 发送给GC的5个已创建对象和2个对象是什么。 我不明白。如果我们已经在数组中创建了3个对象。那么为什么我们要实例化c[0]=新学院; 我知道College[]c=newcollege[3]是一个类型的College数组,它还没有包含任何对象。这是对的还是错的? 从现在起,我将坚持使用java官方书籍

int [] cls = {1,2,3,4};
这将创建一个int[]对象

创建的5个对象是什么

创建了四个对象[除非它们正在计算字符串[]args,而它们可能不应该这样做]

和2个被发送到GC

您发布的代码不会将任何内容“发送到GC”,但当此类代码位于方法作用域中时,当它退出时,所有内容都将符合GC的条件,如果没有其他对它们的引用,则为空的引用也会使它们先前引用的对象符合GC的条件

我不明白。如果我们已经在数组中创建了3个对象。那么为什么我们要实例化c[0]=新学院

我们没有“在数组中创建3个对象”。我们创建了一个包含三个空插槽的阵列

我知道College[]c=newcollege[3]是一个类型的College数组,它还没有包含任何对象。这是对的还是错的


正确。

您说c初始化时,所有元素都为null,这意味着它们不包含任何引用,这是正确的。但是他们是谁?哦,一个包含java测试的应用程序。他们有多种选择。@Logan KulinskiYes,我也只看到在大学课堂上创建的三个对象。对象在使用中不再指向时会被垃圾收集。c[1]仍在使用co曾经引用的对象,即使您的co=null;是的,但我指的是最初创建的对象,而不是c[1]中的引用。我想我的最后一个问题与前面的问题相矛盾
int [] cls = {1,2,3,4};