黑马程序员技术交流社区

标题: StringBuffer和StringBuilder的区别是? [打印本页]

作者: 罗胜华    时间: 2013-3-27 11:50
标题: StringBuffer和StringBuilder的区别是?
谁能告诉我StringBuffer和StringBuilder的区别是?
详细点
作者: itserious    时间: 2013-3-27 12:06
StringBuffer 是最早出来的缓冲区,它考虑到了线程安全。
但是我们通常都是用到字符串缓冲区的时候都是单线程,的涉及不
到线程安全问题,这时候用StringBuffer就降低效率。
为了解决这个问题,JDK又推出了StringBuilder,它是不同步,是线程不安全的
但是StringBuildert在单线程中全比较安全。
所以单线程的,或者不涉及到线程安全的多线程我们推荐选择StringBuiler
只有需要同步,多线程访问的时候才选用StringBuffer
作者: 李道福    时间: 2013-3-27 12:12
StringBuffer和Stringbuilder都是可变字符串,两个的用法基本相同
只是StringBuffer在多线程中安全的,效率相对低;而StringBuilder在多线程中是不安全的,效率相对高
作者: 朱德帅    时间: 2013-3-27 12:25
一样,只是StringBuffer线程安全,StringBuild线程不安全。应该是先有的StringBuild后有的StringBuffer。
作者: 花天喜事    时间: 2013-3-27 13:07
朱德帅 发表于 2013-3-27 12:25
一样,只是StringBuffer线程安全,StringBuild线程不安全。应该是先有的StringBuild后有的StringBuffer。 ...

StringBuilder不是StringBuild ,现有StringBuffer(jdk1.0)后有的StringBuilder(jdk1.5)
作者: 王_强    时间: 2013-3-30 22:55
1.  在执行速度方面的比较:StringBuilder >  StringBuffer   2.  StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。3.  StringBuilder:线程非安全的  StringBuffer:线程安全的    当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。




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