黑马程序员技术交流社区
标题:
StringBuffer 和 StringBuilder有什么区别啊。
[打印本页]
作者:
黄嵘才
时间:
2012-12-25 09:31
标题:
StringBuffer 和 StringBuilder有什么区别啊。
本帖最后由 esirong 于 2012-12-25 12:44 编辑
String ,StringBuffer,和 Stringbuilder.
这两个都可用来替代那个String做一些增长字符,更长字串,好像功能都相同。就不太了解这个。
还有,那么在什么情况下,用哪一种会比较好。
作者:
高会仁
时间:
2012-12-25 09:37
Stringbuilder,效率高,但线程不安全
Stringbuffer,效率相对较低,但线程安全
所以在单线程下使用Stringbuilder,可提高效率
而多线程下使用Stringbuffer比较好,可以使线程安全
作者:
黄锦成
时间:
2012-12-25 10:19
StringBuilder:一个可变的字符序列。此类提供一个
与 StringBuffer 兼容
的 API,
但不保证同步。该类被设计用作 StringBuffer 的一个简易替换
,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,
建议优先采用该类
,因为在大多数实现中,它
比 StringBuffer 要快
。
StringBuilder:是在1.5才出现的,之前都是用StringBuffer
作者:
谢辉林
时间:
2012-12-25 10:21
本帖最后由 laughing 于 2012-12-25 11:35 编辑
1:在执行效率方面StringBuilder大于StringBuffer
2: StringBuffer与StringBuilder,都是字符串变量,是可变的对象,
当我们用他们对字符串进行改变操作做时不像String那样引发新的String对象,所以执行速度快
3:StringBuilder线程不安全,StringBuffer线程安全
当字符串缓冲区被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,但可以保证StingBuffer的安全。
总之如果要操作少量的数据用 = String
,单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
,多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
作者:
陈泽鑫
时间:
2012-12-25 17:49
简单点说,一般在增加字符串少于3条包括3条时用String是最节省资源也最快速
然后超过3条就用StringBuffer和StringBuilder
而多线程情况下用StringBuffer比较好,因为同步线程安全
而在不使用多线程的情况下用StringBuilder是最快速的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2