黑马程序员技术交流社区

标题: StringBuilder与StringBuffer的区别?? [打印本页]

作者: 世界公民    时间: 2013-6-20 21:28
标题: StringBuilder与StringBuffer的区别??
StringBuilder与StringBuffer有区吗??他俩的功能好想都一样吧。

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

以后开发中尽量用StringBuilder,基本已经完全取代了StringBuffer
作者: shang1jk    时间: 2013-6-20 21:39
差不多,

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

所以推荐StringBuilder.
作者: gzbbxu    时间: 2013-6-20 22:02
除了对多线程的支持不一样外,这两个类的使用几乎没有任何差别
如果我们的程序是在单线程下运行,或者是不必考虑到线程同步问题,我们应该优先使用StringBuilder类;当然,如果要保证线程安全,自然非StringBuffer莫属了。

作者: 姚志远    时间: 2013-6-21 01:05
  StringBuffer和StringBuilder类都表示内容可以被修改的字符串,StringBuilder是线程不安全的,运行效率高,

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

如果要在类里面定义成员变量,并且这个类的实例对象会在多线程环境下使用,那么最好用StringBuffer。
作者: Just_Only    时间: 2013-6-21 01:10
如果问题已经解决,请将帖子改为已解决,谢谢合作。
作者: peerless2012    时间: 2013-6-21 06:49
StringBuffer是线程同步,安全,效率比下面面的低。
StringBuilder是线程不同步,不安全,效率比上面的高,常用在但线程里,如果用到多线程的话自己加同步就行了,上面的很少用到了




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