string 和stringbuff 有什么区别?

shenghuiping2001 2010-01-12 11:20:13
string 和stringbuff 有什么区别?
...全文
423 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhang568745144 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 rwg109 的回复:]
StringBuffer 支持多线程,也就是说StringBuffer是线程安全的。在连接字符串时直接用:Append("string")就行,它的容量比较大,可以包含整篇文章。
String不支持线程,所以它不安全,虽然在连接字符串时可用"+",但需要注意的是每"+"一次的同时就会在内存(堆)中增加一个空间地址。相对而言,你加的多了,就会使JVM出现内存溢出等错误。

  如果在面试的时候出现这种题:你直接说:StringBuffer是线程安全的,String 则不是。就行了。
[/Quote]
他的说法很正确
jc_njj 2010-01-12
  • 打赏
  • 举报
回复
的确,在利用String拼接字符串的时候可能会出错,而StringBuffer则不会。我倒是碰到过,别的区别就不清楚了。
啊_sdf12 2010-01-12
  • 打赏
  • 举报
回复
StringBuffer 支持多线程,也就是说StringBuffer是线程安全的。在连接字符串时直接用:Append("string")就行,它的容量比较大,可以包含整篇文章。
String不支持线程,所以它不安全,虽然在连接字符串时可用"+",但需要注意的是每"+"一次的同时就会在内存(堆)中增加一个空间地址。相对而言,你加的多了,就会使JVM出现内存溢出等错误。

如果在面试的时候出现这种题:你直接说:StringBuffer是线程安全的,String 则不是。就行了。
xmykd 2010-01-12
  • 打赏
  • 举报
回复
总之,字符串值不变就用String,字符串值需要动态添加或删除就用StringBuffer
maer56 2010-01-12
  • 打赏
  • 举报
回复
还有就是 String 拼接字符串没有StringBuffer效率高
maer56 2010-01-12
  • 打赏
  • 举报
回复
同意 2-3 楼说法
jlwei888 2010-01-12
  • 打赏
  • 举报
回复
string不可改变!改变的是新的对象!
stringbuf可以改变!
xiaobei2010 2010-01-12
  • 打赏
  • 举报
回复
String是固定不可变的
StringBuffer适用于可变的字符串
使用字符串连接时,会创建多个String对象,而使用StringBuffer只创建一个StringBuffer对象

freedom2001 2010-01-12
  • 打赏
  • 举报
回复
google一下嘛
http://blog.csdn.net/yirentianran/archive/2008/09/03/2871417.aspx看看这个解释就行了
发帖
Java

4.9w+

社区成员

Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
帖子事件
创建了帖子
2010-01-12 11:20
社区公告
暂无公告