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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

        public static void main(String[] args) {
int [] array1={};
int [] array2=null;
System.out.println(array1);
System.out.println(array2);
        }
}
打印结果如下
[I@f39b3a
null

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 新手分。

查看全部评分

5 个回复

倒序浏览
当然啊。
nt [] array1={};
//这个已经在内在开了空间。输出当然是流。
int [] array2=null;
//这个没开空间。输出当然是没有的。

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
我觉得是这样:
int[] array1;
int[] array2;  
不过在没有进行初始化之前是不能使用的。
回复 使用道具 举报
定义一个空的数组要干什么呢?
回复 使用道具 举报
从结果就可以看出来,第一个是在栈内存中开辟空间,array1并指向地址为[I@f39b3a的堆内存空间
第二个是在栈内存中开辟空间,但是没有指向堆,也就是堆内没有开辟空间

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼上的都已经回答的非常不错了.array1它已经给初始化赋值了,并且在堆内存中new了空间,然后在取得对象地址给array1,
array2你给它初始化为空了,没有指向任何引用.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马