Java 垃圾收集器 : Are rows of generic arrays independent objects?

标签 java arrays multidimensional-array garbage-collection

当我执行以下操作时:

public double[] someFn()
{
    double[][] b = new double[5][5];
    return b[2];
}

缓冲区 b 的其余部分是否已准备好放入垃圾箱,或者仍在使用中的第 2 行引用是否会阻止整个数组 b 被收集?

当我在谈论“通用数组”时,我无法测试最终确定......

最佳答案

是的,b 的每个元素只是double[] 的引用。每个元素都可以是对独立对象的引用 - 或者多个元素可以引用同一个数组,或者具有空值。

没有从元素到包含它的数组的“反向链接”。

基本上,您应该将“多维”数组视为普通数组,其中元素类型恰好 是另一个数组。例如:

String foo() {
    String[] array = getStrings();
    return array[0];
}

该方法返回的字符串引用对数组一无所知,它所引用的字符串对象也一无所知。这与数组的数组完全相同。

关于Java 垃圾收集器 : Are rows of generic arrays independent objects?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15450381/

相关文章:

java - ArrayList无法添加ArrayList,错误java.lang.NullPointerException

php - 复杂的PHP数组逻辑

arrays - "Flattening"元胞数组

javascript - 将 knockout 与关联数组一起使用

java - CodeName One Project - 对 Google Sheets 的 POST 请求抛出 401 错误,但 GET 正常

java - 用于反向一对一解决方法的 Hibernate 延迟加载 - 这是如何工作的?

java - 如何在机器人框架中使用 "Choose File"关键字上传文件

arrays - VBA:从空数组元素输出 "blank"而不是零

c中的字符算术;总线错误

javascript - 如何在二维数组中找到字符串?