GC将创建多少个对象以及销毁多少个对象?

时间:2016-06-17 20:27:17

标签: java

System.out.println (“End of Logic”);

在执行此代码期间将创建多少个对象? 当垃圾收集器达到{{1}}时,它将为垃圾收集器准备多少?为什么?

1 个答案:

答案 0 :(得分:-2)

假设代码是固定的(int [] nums = {1,2,3};并且格式化的引用是固定的):

总共会创建4个对象。查看代码:

Fizz[] fs = new Fizz[3];

我们将数组本身创建为一个对象,但是它内部没有创建任何内容,因此创建了一个对象。

Fizz fizz = new Fizz();

这会创建两个对象:实际的Fizz对象和Fizz对象内的nums数组。

fs[1] = fizz;

没有创建任何对象,我们只需指定fs[1]指向fizz。

fizz = null;

我们指定fizz = null,但该对象仍然存在,因为它被fs[1]指向。

因为所有对象都有引用,所以此时不​​会有任何垃圾回收。

然后你有了创建的字符串对象,总共有4个对象。