黑马程序员技术交流社区

标题: StringBuffer和StringBuilder的用法 [打印本页]

作者: JJJD    时间: 2015-6-25 21:44
标题: StringBuffer和StringBuilder的用法
本帖最后由 JJJD 于 2015-6-25 22:06 编辑

他们都是字符串缓冲区,都是操作字符串的:
StringBuffer:线程安全的:多线程,线程同步
StringBuilder:线程非安全的:单线程,线程不同步

问题1:除了上面的区别,他们还有什么区别?
问题2:在什么情况下分别适用哪个?






作者: guohaichang    时间: 2015-6-25 21:51
速度区别,多线程的,每次要检查锁定,效率稍低。别的区别没了。
作者: 黑马无敌    时间: 2015-6-25 22:01
StringBuffer属于线程安全,相对为重量级
StringBuilder属于非线程安全,相对为轻量级
StringBuilder属于非线程安全,相对为轻量级

为了达到线程安全的目的在一定程度上会降低程序的性能。所以在单线程中,StringBuilder的性能要比StringBuffer高。多线程为了线程安全需要采用StingBuffer。其实在线程不考虑的情况下,要是程序对性能的要求不高,太在意这两者的区别就没有什么意义(个人理解)。

作者: 嘎路的米    时间: 2015-6-26 09:25
区别:
    StringBuilder是JDK1.5出现的
    StringBuilder效率更好

单线程建议使用StringBuilder。因为效率高
多线程建议使用StringBuffer。因为安全

作者: fyg408224345    时间: 2015-6-26 10:12
楼上已经讲的很清楚了,我来只好围观了。。。
作者: JJJD    时间: 2015-6-26 11:49
谢谢各位大神!
作者: 爱李萝卜    时间: 2015-6-26 12:13
看到别人发的,我给你转发过来

字符串1.png (94.34 KB, 下载次数: 202)

图片1

图片1

字符串2.png (11.47 KB, 下载次数: 182)

图片2

图片2

作者: 几率收割    时间: 2015-6-26 12:54
相比之下stringbuilder单线程处理快更好,处理多线程有了锁,所以单线程也无妨碍
作者: Happe_Sun    时间: 2015-6-26 14:47
学习学习

作者: 张安哲    时间: 2015-6-26 14:52
悄悄地拿一个黑马币,走人~~~~
作者: 乔栋    时间: 2015-6-26 15:37
加油!!!!!!
作者: 乔栋    时间: 2015-6-26 15:42
爱李萝卜 发表于 2015-6-26 12:13
看到别人发的,我给你转发过来

从哪搞的????
作者: 爱李萝卜    时间: 2015-6-27 07:55
乔栋 发表于 2015-6-26 15:42
从哪搞的????

论坛里有人分享的,他的帖子实在找不到了。




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