黑马程序员技术交流社区
标题:
数组的基础题,求解释,这些数组产生几个对象?
[打印本页]
作者:
张小明
时间:
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