黑马程序员技术交流社区
标题:
String StringBuffer和StringBulder到底有什么区别,在什么时候用们??
[打印本页]
作者:
Dej@vu
时间:
2013-8-4 10:59
标题:
String StringBuffer和StringBulder到底有什么区别,在什么时候用们??
String StringBuffer和StringBulder到底有什么区别,总是混淆,在什么时候用们??
作者:
吴光新
时间:
2013-8-4 12:08
StringBuffer适合多线程使用,StringBulder适合单线程使用
作者:
蚂蚁搬家
时间:
2013-8-4 13:05
StringBuffer和StringBuilder内部方法基本一样,都是可以对字符串进行增删;
但,StringBuilder不考虑多线程同步,只适用于单线程的情况,正因为如此它的效率相对于StringBuffer要高;
StringBuffer考虑多线程同步,也因为此,它的效率相对来说比较低;
作者:
吕振中
时间:
2013-8-4 20:08
其实功能是一样的,根据实际情况着情使用,如果没有多线程最好使用StringBuilder。
作者:
☆今☆
时间:
2013-8-4 20:35
String 是固定长度的,一旦被初始化就不可以被改变.
StringBuffer是线程同步的,(多线程用StringBuffer)
StringBuilder是线程不同步.(单线程用StringBuilder),速度比较快.(建议开发使用)
作者:
a767175432
时间:
2013-8-4 22:34
String是一个不可变对象,不允许修改String对象 例如 String str = "sdfwfwq"; str="sada"; 这种方式是又将“sada”这个对象给了str,“sdfwfwq”这个被释放掉了
StringBuffer和StringBuilde这两种类是一个字符串缓冲区,可以在字符串后面续写。
但是第一种是线程安全的 在多线程下使用第一种
第二种不是线程安全的,在单线程下使用
作者:
wang100753
时间:
2013-8-4 23:04
1. 两者在执行速度方面的比较:StringBuilder > StringBuffer
2. StringBuffer:字符创变量
StringBuilder:字符创变量
3. StringBuilder与 StringBuffer
StringBuilder:线程非安全的
StringBuffer:线程安全的
当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。
对于两者使用的总结:
1.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
2.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
作者:
施大勇
时间:
2013-8-5 17:42
String 是最常用的,它是一个字符串,值在创建之后不能更改。
StringBuffer 是一个可变的字符序列,是一个缓冲区,其长度和内容可以通过方法改变。
它是同步的,所以多线程时是安全的。
StringBuilder 也是一个可变的字符序列,它是最新的(1.5才出的),
而StringBuffer和String都是以前版本就有的。它是不同步的,所以效率高一点。但用
于多线程就不安全。
区别:
1,当多次要改变字符串的内容时,不要用String,因为它的效率最低。
2,对于StringBuffer和StringBuilder来说,优先使用StringBuilder。
3,如果用于多线程中操作,要选用StringBuffer,它安全。
所以说,安全和效率两者是反比例的,要追求高效率安全性就差一些,安全性高则效率低,
这就需要情况而定了。看你更追求的是效率,还是安全,具体上需要综合考虑。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2