1、多维数组如何储存在内存中
了解一维数组如何储存看这里:java数组如何存储在内存中
从底层来看,数组元素可以存放引用类型,数组也是引用类型的一种。也就是说,在数组元素的内部还可以包含数组(如int[][] numbers = new int[length][]),即二维数组可当作一维数组(数组长度为length)来处理。
了解数组和普通引用对象在内存中的区别看这里:数组和普通对象的引用变量有什么区别
由此我们得出结论: 任何多维数组(维度为n,n>1)都可以当作一维数组,其数组元素为n-1维数组。多维数组在内存中的储存同引用类型数组在内存中的储存。
了解引用类型数组在内存中的储存看这里:引用类型数组在内存中如何储存
以二维数组为例:
public class TestMultiArray {
public static void main(String[] args) {
int[][] numbers;
numbers = new int[2][];
for (int i = 0; i < numbers.length; i++) {
System.out.print(numbers[i] + ",");
}
System.out.println("");
numbers[0] = new int[2];
numbers[0][1] = 1;
numbers[1] = new int[2];
numbers[1][0] = 11;
numbers[1][1] = 15;
for (int i = 0; i < numbers.length; i++) {
for (int j = 0; j < numbers[i].length; j++) {
System.out.print(numbers[i][j] + ",");
}
System.out.println("");
}
}
}
结果如下:
null,null,
0,1,
11,15,
以一个图展示这个数组在内存中的存储:
原文地址:http://blog.csdn.net/ooppookid/article/details/51415846