A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© JJJD 中级黑马   /  2015-6-25 21:44  /  1066 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 JJJD 于 2015-6-25 22:06 编辑

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

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





12 个回复

倒序浏览
速度区别,多线程的,每次要检查锁定,效率稍低。别的区别没了。
回复 使用道具 举报
StringBuffer属于线程安全,相对为重量级
StringBuilder属于非线程安全,相对为轻量级
StringBuilder属于非线程安全,相对为轻量级

为了达到线程安全的目的在一定程度上会降低程序的性能。所以在单线程中,StringBuilder的性能要比StringBuffer高。多线程为了线程安全需要采用StingBuffer。其实在线程不考虑的情况下,要是程序对性能的要求不高,太在意这两者的区别就没有什么意义(个人理解)。
回复 使用道具 举报
区别:
    StringBuilder是JDK1.5出现的
    StringBuilder效率更好

单线程建议使用StringBuilder。因为效率高
多线程建议使用StringBuffer。因为安全
回复 使用道具 举报 1 0
楼上已经讲的很清楚了,我来只好围观了。。。
回复 使用道具 举报
谢谢各位大神!
回复 使用道具 举报
看到别人发的,我给你转发过来

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

图片1

图片1

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

图片2

图片2
回复 使用道具 举报
几率收割 来自手机 中级黑马 2015-6-26 12:54:55
8#
相比之下stringbuilder单线程处理快更好,处理多线程有了锁,所以单线程也无妨碍
回复 使用道具 举报
学习学习
回复 使用道具 举报
悄悄地拿一个黑马币,走人~~~~
回复 使用道具 举报
加油!!!!!!
回复 使用道具 举报
爱李萝卜 发表于 2015-6-26 12:13
看到别人发的,我给你转发过来

从哪搞的????
回复 使用道具 举报
乔栋 发表于 2015-6-26 15:42
从哪搞的????

论坛里有人分享的,他的帖子实在找不到了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马