java 中的Stringbuffer的问题

code dream 2015-08-04 05:08:58

public class Stringbuffer {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sBuffer=new StringBuffer();
sBuffer.append("Hello Word ");
// StringBuffer sBuffer2=new StringBuffer();
StringBuffer sBuffer2=sBuffer.append("My name is syd ");
sBuffer2.append("How are you ");
// System.out.println("lenth="+sBuffer.length());
// System.out.println("capacity="+sBuffer.capacity());
System.out.println(sBuffer);
System.out.println(sBuffer2);

}

}
输出结果:
Hello Word My name is syd How are you
Hello Word My name is syd How are you
这是为什么?求帮助
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
code小生 2015-08-05
  • 打赏
  • 举报
回复
这没有为什么,append()这个方法本身返回的就是一个StringBuffer,你一直在赋值。
飏飏一蝶 2015-08-04
  • 打赏
  • 举报
回复
返回自己的好处是可以连加操作 像这样 sBuffer.append("My name ").append(" is ").append("syd ");
飏飏一蝶 2015-08-04
  • 打赏
  • 举报
回复

 public synchronized StringBuffer append(String str) {
        toStringCache = null;
        super.append(str);
        return this;
    }
源码可以看出append返回的就是自己 意思是执行完StringBuffer sBuffer2=sBuffer.append("My name is syd ");后 两个都是指向同一个对象 操作任何一个引用都是影响的同一个对象 另:你的类名别和系统提供的API名搞得那么亲热

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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