黑马程序员技术交流社区
标题:
数组为什么直接打印不出所有内容?
[打印本页]
作者:
xiangzi2008006
时间:
2013-8-22 22:50
标题:
数组为什么直接打印不出所有内容?
本帖最后由 xiangzi2008006 于 2013-8-23 08:45 编辑
数组为什么直接打印不出所有内容?
作者:
gulup
时间:
2013-8-22 23:19
数组是引用类型的,toString是Object默认的toString。
返回来由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成的字符串。所以直接输出数组不会把数组内的元素打印出来。
而List这样的容器呢,因为继承了AbstractCollection,而AbstractCollection又覆盖了toString方法,返回的字符串由 collection 元素的列表组成,这些元素按其迭代器返回的顺序排列,并用方括号 ("[]") 括起来。相邻元素由字符 ", "(逗号加空格)分隔。所以就直接打印了集合内的元素。
作者:
王延龙
时间:
2013-8-22 23:59
楼上的兄弟,正解,先顶一个。
在Java中,有基本数据类型和引用数据类型两种,基本数据类型就是整型、浮点数、字符型以及布尔型 它们的创建是在 栈 内存中,基本数据类型变量存储的就是实际的值。
但是,使用new操作符创建的就是引用数据类型,如字符串、数组、还有类(类也可以看做一个类型,就是类类型)。引用数据类型存储在堆内存中,引用数据类型的变量中,存储的只是一段指向堆内存的地址值。这个地址值就是该 引用数据类型名 + @ +引用数据类型的十六进制形式的内存地址组成的字符串。
实质是由toString方法来调用这个字符串的。
作者:
xiangzi2008006
时间:
2013-8-23 08:38
哦,懂了,谢谢楼上的回答
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2