微信扫一扫

028-83195727 , 15928970361
business@forhy.com

Java千百问_06数据结构(018)_多维数组如何储存在内存中

java多维数组内存,多维数组内存储存,多维数组如何储存,多维数组堆栈,java二维数组内存2016-06-09

点击进入_更多_Java千百问

1、多维数组如何储存在内存中

了解一维数组如何储存看这里:java数组如何存储在内存中

从底层来看,数组元素可以存放引用类型,数组也是引用类型的一种。也就是说,在数组元素的内部还可以包含数组(如int[][] numbers = new int[length][]),即二维数组可当作一维数组(数组长度为length)来处理。

了解数组和普通引用对象在内存中的区别看这里:数组和普通对象的引用变量有什么区别

由此我们得出结论: 任何多维数组(维度为n,n>1)都可以当作一维数组,其数组元素为n-1维数组。多维数组在内存中的储存同引用类型数组在内存中的储存。

了解引用类型数组在内存中的储存看这里:引用类型数组在内存中如何储存
以二维数组为例:

public class TestMultiArray {
    public static void main(String[] args) {
        // 1.定义二维数组
        int[][] numbers;
        // 2.分配内存空间
        numbers = new int[2][];
        // 可以把numbers看作一维数组来处理
        for (int i = 0; i < numbers.length; i++) {
            System.out.print(numbers[i] + ",");// null,null,null
        }
        System.out.println("");
        // 3.为数组元素指定值
        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,

以一个图展示这个数组在内存中的存储: