黑马程序员技术交流社区
标题:
关于数组长度为零以及为null的疑问
[打印本页]
作者:
根号5
时间:
2012-4-27 18:27
标题:
关于数组长度为零以及为null的疑问
int[] array = null 和int[] array = {}这两个什么区别?不大明白
我自己的理解是 前者 是表示这个数组存在,也就是给这个数组开辟了内存空间,但是没往里面存东西;后者指的是这个数组不存在。
前大家帮帮忙 给解释下区别
作者:
张卯
时间:
2012-4-27 18:34
饿~我理解的和你正好相反啊,前一个是指向空,没有开辟空间,后一个是指向对象,开辟了空间,但没有存数据。
作者:
光sail
时间:
2012-4-27 18:39
我的理解是两个数组都指向空,但没在内存中开辟空间
作者:
邱俊杰
时间:
2012-4-27 18:41
int[] array = null 数组在堆内存开辟空间、值为null , array 指向null; System.out.println(array); 输出为null
int[] array1 = {} 数组在堆内存开辟空间、空间为空、array指向空间的地址。 System.out.println(array1); 输出为 地址
作者:
一生一世
时间:
2012-4-27 18:53
楼主理解反了,前者是在stack中声明了一个数组类型的变量,它的值为空,也就是说它没有指向heap中的任何空间,而后者不仅声明了数组,而且还在heap中开辟了空间,只不过空间里面没有任何数据罢了(当然数组的长度为0),可以这样理解前者只是数组的声明,后者却是数组的一种定义形式。
作者:
prospect
时间:
2012-4-27 21:10
板凳理解的最准确。俩个都在内存中开辟空间,只是数组变量指向的值不同,一个是null,另外一个是内存地址
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2