黑马程序员技术交流社区

标题: 数组的基础题,求解释,这些数组产生几个对象? [打印本页]

作者: 张小明    时间: 2011-7-27 09:28
标题: 数组的基础题,求解释,这些数组产生几个对象?
下列数组分别产生几个对象?求解释!!
int[] arr = new int[3];

int[][] arr = new int[2][3];

Integer[] arr = new Integer[3];

Integer[][] arr =new Integer[2][3];

后来查了一下,分别是是这样:1个;3个;1个;1个 对象?!是这样吗?
有点迷糊,为什么呢?
[ 本帖最后由 张小明 于 2011-07-27  23:17 编辑 ]
作者: 匿名    时间: 2011-7-27 10:18
int[] arr = new int[3];   产生了3个对象   0  1 2

int[][] arr = new int[2][3];      这个我不清楚  个人感觉是 6个  

Integer[] arr = new Integer[3]; 产生1个对象存放1*3=3个Integer的[][]数组对象

Integer[][] arr =new Integer[2][3]; 产生1个对象存放2*3=6个Integer的[][]数组对象
作者: 杨武刚    时间: 2011-7-27 10:42
标题: 回复 楼主 的帖子
Java中没有真正意义的二维数组,请不要跟C中搞混了
int[] arr = new int[3]; 是产生三个对象,arr[0],arr[1],arr[2]
int[][] arr = new int[2][3]; 是产生两个对象,arr[0][3],arr[1][3],
Integer[] arr = new Integer[3]; 是产生三个对象,arr[0],arr[1],arr[2]
Integer[][] arr =new Integer[2][3]; 是产生两个对象,arr[0][3],arr[1][3],
程序验证如下:[code=java]package Test.Yangwg;

public class ObjectFactoryTest {
        public static void main(String[] args) {
                int[] arr = new int[3];
                int[][] arr1 = new int[2][3];
                Integer[] arr2 = new Integer[3];
                Integer[][] arr3 =new Integer[2][3];
                System.out.println(arr.length);
                System.out.println(arr1.length);
                System.out.println(arr2.length);
                System.out.println(arr3.length);
        }
}[/code]结果:
3
2
3
2
[ 本帖最后由 杨武刚 于 2011-07-27  10:46 编辑 ]
作者: 匿名    时间: 2011-7-27 12:26
int[] arr = new int[3];

int[][] arr = new int[2][3]; 都是基本数据类型的数组,基本数据类型不是对象,所以他们都只产生一个对象就是数组本身。

Integer[] arr = new Integer[3]; 产生了4个对象,一个是数组本身,另外三个是arr[0],arr[1]和arr[2]

Integer[][] arr =new Integer[2][3]; 产生了7个对象,一个是数组本身,另外的是arr[0][0],arr[0][1],arr[0][2],arr[1][0],arr[1][1],arr[1][2]
作者: 匿名    时间: 2011-7-27 22:55
谢谢楼上的回答,可有资料说,分别有1个、3个、1个、1个对象?!为什么呢?
作者: 朱玲均    时间: 2011-7-27 23:15
int[] arr = new int[3];     产生一个数组对象
int[][] arr = new int[2][3];  产生三个数组对象
Integer[] arr = new Integer[3];  产生一个数组对象
Integer[][] arr = new Integer[2][3];  产生三个数组对象

见下图,
http://hi.csdn.net/space-2292579-do-album-picid-870562.html
[ 本帖最后由 朱玲均 于 2011-07-28  10:24 编辑 ]




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