String和StringBuffer的区别!?!糊了

Patrick_DK 2002-01-11 03:11:45
我记得好像看到过他们的区别是String不可变,而StingBuffer是可以变长的。
但是
String s="111";
s+="222";
System.out.println(s); // output 111222

这么看来,String也是可变的喽?
所以糊涂了,到底它们的本质区别在哪里啊?
...全文
58 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyyoung 2002-01-11
  • 打赏
  • 举报
回复
多个字符串连接尽量少适用“+”
应使用StringBuffer.append()
xmvigour 2002-01-11
  • 打赏
  • 举报
回复
String s="123";
String s1=s;
s+="222";
System.out.println("s="+s+" s1="+s1+" s=s1="+(s==s1));
输出:
s=123222 s1=123 s=s1=false

if not a new String object reference variable s then (s==s1) must be true!
Patrick_DK 2002-01-11
  • 打赏
  • 举报
回复
哦,谢谢了
xmvigour 2002-01-11
  • 打赏
  • 举报
回复
是这样理解的!书上都这样讲的!:))
Patrick_DK 2002-01-11
  • 打赏
  • 举报
回复
哦,是不是因为String可以隐蔽构造器来创建实例的缘故?
String s="111";
s+="222"; // 其实是String object reference variable s“指向”了一个新的实例


是这样理解吧?
xmvigour 2002-01-11
  • 打赏
  • 举报
回复
s 已经是一个新的String 对象了,
而StingBuffer可以变长的与String的区别在于StringBuffer操作时都是同一个对象,没有再产生新的StringBuffer对象!

62,615

社区成员

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

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