两张内存变化图揭秘二维数组的初始化

来源:互联网 发布:淘宝信誉查询怎么查 编辑:程序博客网 时间:2024/05/16 08:55

一 代码示例

public class TwoDimensionTest{public static void main(String[] args){// 定义一个二维数组int[][] a;// 把a当成一维数组进行初始化,初始化a是一个长度为4的数组// a数组的数组元素又是引用类型a = new int[4][];  //a// 把a数组当成一维数组,遍历a数组的每个数组元素for (int i = 0 , len = a.length; i < len ; i++ ){System.out.println(a[i]);}// 初始化a数组的第一个元素a[0] = new int[2];// 访问a数组的第一个元素所指数组的第二个元素a[0][1] = 6;            //b// a数组的第一个元素是一个一维数组,遍历这个一维数组for (int i = 0 , len = a[0].length ; i < len ; i ++ ){System.out.println(a[0][i]);}}}

二 运行结果

null
null
null
null
0
6
三 结果分析



 

 
图一是a段代码执行完后的内存情况。
图二是b段代码执行完后的内存情况。
另外从图一和图二,我们可以得出这样一个结论:二维数组是一维数组,其数组元素是一维数组。三维数组也是一维数组,其数组元素是二维数组,从这个角度来看,Java语言没多维数组。

原创粉丝点击