黑马程序员技术交流社区

标题: 关于StringBuffer的问题 [打印本页]

作者: syfsyf1993    时间: 2015-2-5 20:44
标题: 关于StringBuffer的问题
int[] arr = new int[]{1,2,3}
StringBuffer sb = new StringBuffer();
sb.appeng("123");
两者都是new出来的
为什么输出arr是个地址
而输出sb的时候不是地址,是里面的123值???
求解啊

作者: syfsyf1993    时间: 2015-2-5 20:45
写错了 上面是sb.append
作者: 白衣布士    时间: 2015-2-5 21:03
说明StringBuffer重写了toString方法
作者: 丶人世百态    时间: 2015-2-5 21:10
因为StringBuffer类里面的toString()重写了object类的toString()方法
作者: 张_磊    时间: 2015-2-5 21:49
int类型的数组需要遍历才能输出123。StringBuffer重写了toString方法,所以输出的是字符串
作者: 奔跑的猴子    时间: 2015-2-5 22:32
所有之类默认继承了object类的toString方法,对于Object的toString来说,默认输出的就是地址值,作用不大,所以很多类都有重写了这个方法。对于数组,可以使用for进行遍历输出,也可以调用Arrays工具的toString方法使用,格式为:  System.out.println(java.util.Arrays.toString(arr);)
作者: huangchunwei    时间: 2015-2-6 10:21
StringBuffer重写了Object的toString( )方法。你可以在API文档中找一下就明白了。
作者: ㏒假™面具    时间: 2015-2-7 01:46
StringBuilder 你可以看下源码,该类覆写了toString()方法
作者: duxubo    时间: 2015-2-7 21:10
arr是数组 sb的StringBuffer重写了toString方法
作者: Doug    时间: 2015-2-7 23:30
打印引用类型时,都是调用该类型的toString()方法。该方法继承自Object类,默认是返回类型@地址,但子类可以重写。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2