0

我在一个单独的类中有一个 Java int[][][] 对象。

数组的第一个维度大约有 1000 个元素,但我一次只需要访问一个。

我的问题是:如果我一次只想访问一个元素,如下所示:

int[][] some2DInt = SomeClass.some3DInt[5];

这会有效吗?我的意思是,Java 会加载全部 1000 个元素还是只加载我真正想要的一个?

4

1 回答 1

2

这里没有加载。int[][]是一个地址,所以当您执行以下操作时:

int[][] some2DInt = SomeClass.some3DInt[5];

您只需分配some2DInt内存中第五个二维数组的地址。所以没有复制或“加载”完成。

加载(实际上是内存分配)是在您使用new运算符初始化 3 维数组时完成的。(或者如果您静态初始化此数组,这可能是一项繁琐的任务,尤其是对于 1000 个二维数组)

于 2012-12-03T16:55:36.553 回答