黑马程序员技术交流社区

标题: 请问二维数组的这两种创建方式在内存中的区别是什么? [打印本页]

作者: 李成航    时间: 2012-3-23 20:34
标题: 请问二维数组的这两种创建方式在内存中的区别是什么?
第一种方式:
int[][] ar={{1,2,3},{2,3,4},{6,7,8}};


第二种方式:
int[][] arr=new int[3][3];
arr[0]=new int[]{1,2,3};
arr[1]=new int[]{2,3,4};
arr[2]=new int[]{6,7,8};

如题,不知以上两种创建方式在内存中有何区别?
作者: liumeng    时间: 2012-3-23 20:39
没区别 第二种按最多 为例
作者: 杨朝辉    时间: 2012-3-23 20:46
第一种是静态初始化,第二种是动态初始化。
作者: 周建    时间: 2012-3-23 22:33
int[][] ar={{1,2,3},{2,3,4},{6,7,8}};数组里的元素在常量池中,
int[][] arr=new int[3][3];
arr[0]=new int[]{1,2,3};
arr[1]=new int[]{2,3,4};
arr[2]=new int[]{6,7,8};
4个对象都在堆内存中,
第一种方式数组的生命周期大于第二种



作者: 周建    时间: 2012-3-23 22:43
int[][] ar={{1,2,3},{2,3,4},{6,7,8}};数组里的元素在常量池中,
int[][] arr=new int[3][3];
arr[0]=new int[]{1,2,3};
arr[1]=new int[]{2,3,4};
arr[2]=new int[]{6,7,8};
4个对象都在堆内存中,
第一种方式数组的生命周期大于第二种







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2