黑马程序员技术交流社区

标题: StringBuffer的一点疑问? [打印本页]

作者: L.I.F.E    时间: 2013-5-27 15:04
标题: StringBuffer的一点疑问?
本帖最后由 L.I.F.E 于 2013-5-28 08:05 编辑
  1. StringBuffer sb1 = new StringBuffer();
  2.                 sop(sb.toString());
  3.                 StringBuffer sb1 = sb.append(34);//这里传递的是是什么啊?
  4.                 sop(sb.toString());
  5.                 sop(sb1.toString());
  6.                 sop("sb==sb1:"+(sb==sb1));
复制代码

作者: L.I.F.E    时间: 2013-5-27 15:05
是sb中传入一个34,然后又将sb1指向这个地址?
作者: Miss小强    时间: 2013-5-27 15:10
看看api文档一切见分晓:
append方法是将这个元素添加进容器中,然后返回这个容器;
就这么简单。。。
作者: L.I.F.E    时间: 2013-5-27 19:59
Miss小强 发表于 2013-5-27 15:10
看看api文档一切见分晓:
append方法是将这个元素添加进容器中,然后返回这个容器;
就这么简单。。。 ...
  1. StringBuffer sb = new StringBuffer();//定义一个容器,sb指向它。
  2.                 sop(sb.toString());
  3.                 StringBuffer sb1 = sb.append(34);//这里传递的是是什么啊?这里就是说向容器中传递34,然后,再让sb1指向这个容器?
  4.                 sop(sb.toString());
  5.                 sop(sb1.toString());
  6.                 sop("sb==sb1:"+(sb==sb1));
复制代码

作者: yasyas001    时间: 2013-5-27 20:47
利用sb调用功能传入34,sb1=sb,就是说他们两个指向同一个堆内存地址
作者: 张得贵    时间: 2013-5-27 21:55
01.StringBuffer sb1 = new StringBuffer();

02.                sop(sb.toString());

03.                StringBuffer sb1 = sb.append(34);
             //这里调用的是StringBuffer的append方法添加数据,该方法返回的是StringBuffer类型的对象,所以定义一个StringBuffer的引用,也就是sb1来指向它,那么就相于
       //sb1和sb指向了同一个对象。所以最后sb==sb1的结果为true.


04.                sop(sb.toString());

05.                sop(sb1.toString());

06.                sop("sb==sb1:"+(sb==sb1));

作者: Miss小强    时间: 2013-5-27 22:42
L.I.F.E 发表于 2013-5-27 19:59

完全正确。。。
作者: SOAR    时间: 2013-5-27 22:59
StringBuffer sb1 = sb.append(34);//这里传递的是是什么啊?
传递的是数字34,但是传进去以后,程序会自动调用toString()方法.
就像我们可以在Sysytem.out.println();这个括号里放任何东西一样。
作者: 廖志强    时间: 2013-5-28 00:01
这里其实传递的是一个元素,就是一个对象,34本身是个int类型的,但被装箱成了一个对象。




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