gpt4 book ai didi

java - 当我们创建数组的数组时,有多少对象符合垃圾收集器的条件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:55 24 4
gpt4 key购买 nike

public class GarbageCollectionTest{

public static void main(String...args){
int [][]a = new int[4][3];//line 1
a[0] = new int[2];// line 2
a[2] = new int[3];// line 3
a = new int[3][2]; //line 4
}
}

我对第 3 行之后有多少对象符合垃圾收集器的条件感到有点困惑。我已经搜索了与此相关的解决方案,但我对找到的答案并不满意。

最佳答案

好吧,让我们一行一行地过一遍:

您创建一个新的 int 二维数组 a:

int [][]a = new int[4][3];//line 1

你替换了一个中的两个数组:

a[0] = new int[2];// line 2
a[2] = new int[3];// line 3

您重新分配 a 并创建一个新数组:

a = new int[3][2];  //line 4

在第 3 行之后,您在第 2 行和第 3 行中替换的两个数组将被拾取。

在第 4 行之后,垃圾收集器将拾取放置在“旧”a 中的每个对象(数组),因此 4 个对象(int 不是对象,参见 Konstantins 的回答 here ).

4 + 2 + 对“旧”a 本身的引用 = 总共 7

我希望我做对了 ;)

关于java - 当我们创建数组的数组时,有多少对象符合垃圾收集器的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38543939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com