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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 世界公民 中级黑马   /  2013-6-20 21:28  /  1404 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

StringBuilder与StringBuffer有区吗??他俩的功能好想都一样吧。

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

6 个回复

倒序浏览
两者在功能上基本没有区别,StringBuilder是JDK1.5以后出现的。
要说区别的话,StringBuffer是线程同步的,而StringBuilder是线程不同步的。通过这点可以看出来StringBuilder比较高效,因为如果线程同步的话,运行时会判断锁的状态,比较浪费资源。

以后开发中尽量用StringBuilder,基本已经完全取代了StringBuffer

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
差不多,

StringBuilder是线程不安全的; StringBuffer线程安全.
线程安全意味着效率低.

所以推荐StringBuilder.

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
除了对多线程的支持不一样外,这两个类的使用几乎没有任何差别
如果我们的程序是在单线程下运行,或者是不必考虑到线程同步问题,我们应该优先使用StringBuilder类;当然,如果要保证线程安全,自然非StringBuffer莫属了。

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
  StringBuffer和StringBuilder类都表示内容可以被修改的字符串,StringBuilder是线程不安全的,运行效率高,

如果一个字符串变量是在方法里面定义,这种情况只可能有一个线程访问它,不存在不安全的因素了,则用StringBuilder。

如果要在类里面定义成员变量,并且这个类的实例对象会在多线程环境下使用,那么最好用StringBuffer。

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
如果问题已经解决,请将帖子改为已解决,谢谢合作。
回复 使用道具 举报
StringBuffer是线程同步,安全,效率比下面面的低。
StringBuilder是线程不同步,不安全,效率比上面的高,常用在但线程里,如果用到多线程的话自己加同步就行了,上面的很少用到了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马