奇怪的数组对象输出。

XinSzeto 2011-01-27 03:40:03
char[] numbers = { '1', '2', '3' };
Integer[] numbers2 = {1,2,3 };

System.out.println(numbers.toString());
System.out.println(numbers);
System.out.println(numbers2);

常规来说,输出都一致才是,为什么会有这样的区别呢?
...全文
65 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hackerster0324 2011-01-27
  • 打赏
  • 举报
回复
看api和源码:
1:主要看System.out.println(xx)这个方法如何处理xx.
2:yy.toString();如何处理
XinSzeto 2011-01-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 opmic 的回复:]
楼上几位可以从 PrintStream 源码开始找
[/Quote]

好的,谢谢了。、
龙四 2011-01-27
  • 打赏
  • 举报
回复
数组类没有重写toString方法
要打印数组中的所有元素请用System.out.println(java.util.Arrays.toString(array));
opmic 2011-01-27
  • 打赏
  • 举报
回复
楼上几位可以从 PrintStream 源码开始找
opmic 2011-01-27
  • 打赏
  • 举报
回复
第二打印的其实是最终调用
public void write(byte b[], int off, int len) throws IOException {
if (b == null) {
throw new NullPointerException();
} else if ((off < 0) || (off > b.length) || (len < 0) ||
((off + len) > b.length) || ((off + len) < 0)) {
throw new IndexOutOfBoundsException();
} else if (len == 0) {
return;
}
for (int i = 0 ; i < len ; i++) {
write(b[off + i]);
}
}

TKD03072010 2011-01-27
  • 打赏
  • 举报
回复
呵 我也是菜鸟 坐等高手解答!!!
System.out.println(numbers.toString());
这句调用Object的toString(),toString()打印出内容+哈希码 一般要重写toString() 才能得到你想要的结果



62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧