黑马程序员技术交流社区
标题:
空数组如何定义,一直以为下面两种方法都可以,但是打印结果却不是的,求解释,
[打印本页]
作者:
刘丰伟
时间:
2012-12-27 20:22
标题:
空数组如何定义,一直以为下面两种方法都可以,但是打印结果却不是的,求解释,
public static void main(String[] args) {
int [] array1={};
int [] array2=null;
System.out.println(array1);
System.out.println(array2);
}
}
打印结果如下
[I@f39b3a
null
作者:
王少雷
时间:
2012-12-27 20:34
当然啊。
nt [] array1={};
//这个已经在内在开了空间。输出当然是流。
int [] array2=null;
//这个没开空间。输出当然是没有的。
作者:
水天
时间:
2012-12-27 23:00
我觉得是这样:
int[] array1;
int[] array2;
不过在没有进行初始化之前是不能使用的。
作者:
清水
时间:
2012-12-27 23:05
定义一个空的数组要干什么呢?
作者:
郑广昌
时间:
2012-12-28 00:47
从结果就可以看出来,第一个是在栈内存中开辟空间,array1并指向地址为[I@f39b3a的堆内存空间
第二个是在栈内存中开辟空间,但是没有指向堆,也就是堆内没有开辟空间
作者:
顾亦飞
时间:
2012-12-28 02:08
楼上的都已经回答的非常不错了.array1它已经给初始化赋值了,并且在堆内存中new了空间,然后在取得对象地址给array1,
array2你给它初始化为空了,没有指向任何引用.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2