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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© syfsyf1993 中级黑马   /  2015-2-5 20:44  /  1287 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int[] arr = new int[]{1,2,3}
StringBuffer sb = new StringBuffer();
sb.appeng("123");
两者都是new出来的
为什么输出arr是个地址
而输出sb的时候不是地址,是里面的123值???
求解啊

评分

参与人数 1黑马币 +6 收起 理由
liuhuan + 6 鼓励一下

查看全部评分

9 个回复

倒序浏览
写错了 上面是sb.append
回复 使用道具 举报
说明StringBuffer重写了toString方法
回复 使用道具 举报
因为StringBuffer类里面的toString()重写了object类的toString()方法
回复 使用道具 举报
int类型的数组需要遍历才能输出123。StringBuffer重写了toString方法,所以输出的是字符串
回复 使用道具 举报
所有之类默认继承了object类的toString方法,对于Object的toString来说,默认输出的就是地址值,作用不大,所以很多类都有重写了这个方法。对于数组,可以使用for进行遍历输出,也可以调用Arrays工具的toString方法使用,格式为:  System.out.println(java.util.Arrays.toString(arr);)

评分

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

查看全部评分

回复 使用道具 举报
StringBuffer重写了Object的toString( )方法。你可以在API文档中找一下就明白了。
回复 使用道具 举报
StringBuilder 你可以看下源码,该类覆写了toString()方法
回复 使用道具 举报
arr是数组 sb的StringBuffer重写了toString方法
回复 使用道具 举报
打印引用类型时,都是调用该类型的toString()方法。该方法继承自Object类,默认是返回类型@地址,但子类可以重写。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马