A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 根号5 中级黑马   /  2012-4-27 18:27  /  2356 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int[] array = null   和int[] array = {}这两个什么区别?不大明白
我自己的理解是 前者 是表示这个数组存在,也就是给这个数组开辟了内存空间,但是没往里面存东西;后者指的是这个数组不存在。
前大家帮帮忙 给解释下区别

5 个回复

倒序浏览
饿~我理解的和你正好相反啊,前一个是指向空,没有开辟空间,后一个是指向对象,开辟了空间,但没有存数据。
回复 使用道具 举报
我的理解是两个数组都指向空,但没在内存中开辟空间
回复 使用道具 举报
int[] array = null     数组在堆内存开辟空间、值为null , array 指向null;  System.out.println(array);   输出为null
int[] array1 = {}      数组在堆内存开辟空间、空间为空、array指向空间的地址。 System.out.println(array1);  输出为 地址
回复 使用道具 举报
楼主理解反了,前者是在stack中声明了一个数组类型的变量,它的值为空,也就是说它没有指向heap中的任何空间,而后者不仅声明了数组,而且还在heap中开辟了空间,只不过空间里面没有任何数据罢了(当然数组的长度为0),可以这样理解前者只是数组的声明,后者却是数组的一种定义形式。
回复 使用道具 举报
板凳理解的最准确。俩个都在内存中开辟空间,只是数组变量指向的值不同,一个是null,另外一个是内存地址
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马