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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 xiangzi2008006 于 2013-8-23 08:45 编辑

数组为什么直接打印不出所有内容?

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

3 个回复

正序浏览
哦,懂了,谢谢楼上的回答
回复 使用道具 举报
楼上的兄弟,正解,先顶一个。

在Java中,有基本数据类型和引用数据类型两种,基本数据类型就是整型、浮点数、字符型以及布尔型 它们的创建是在 栈 内存中,基本数据类型变量存储的就是实际的值。

但是,使用new操作符创建的就是引用数据类型,如字符串、数组、还有类(类也可以看做一个类型,就是类类型)。引用数据类型存储在堆内存中,引用数据类型的变量中,存储的只是一段指向堆内存的地址值。这个地址值就是该  引用数据类型名 + @ +引用数据类型的十六进制形式的内存地址组成的字符串。

实质是由toString方法来调用这个字符串的。

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
数组是引用类型的,toString是Object默认的toString。
返回来由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成的字符串。所以直接输出数组不会把数组内的元素打印出来。
而List这样的容器呢,因为继承了AbstractCollection,而AbstractCollection又覆盖了toString方法,返回的字符串由 collection 元素的列表组成,这些元素按其迭代器返回的顺序排列,并用方括号 ("[]") 括起来。相邻元素由字符 ", "(逗号加空格)分隔。所以就直接打印了集合内的元素。

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马