黑马程序员技术交流社区

标题: 区别StringBuffer和StringBuilder [打印本页]

作者: 云123    时间: 2015-7-20 00:04
标题: 区别StringBuffer和StringBuilder
StringBuffer和StringBuilder各是什么?他们之间有什么联系,有什么异同点?
作者: e咕噜    时间: 2015-7-20 21:45
StringBuffer 是个可变的对象,就是每次操作都是对对象本身进行操作,而不用生成新的对象,这样效率肯定就会有有很大的提高,在大部分情况下StringBuffer的效率要比String类型要高
StringBuilder 与StringBuffer一样是个可变的字符序列,提供与StringBuffer兼容的API,但是不能保证同步,用在字符串缓冲区被当个线程使用的情况,在单机非多线程的情况下使用StringBuilder会有比较好的效率,因为StringBuilder没有处理同步(Synchronized)问题。StringBuffer则会处理同步问题,如果StringBuilder会在多线程下被操作,则要改用StringBuffer,让对象自行管理同步问题。
作者: a12366456    时间: 2015-7-20 21:56
e咕噜 发表于 2015-7-20 21:45
StringBuffer 是个可变的对象,就是每次操作都是对对象本身进行操作,而不用生成新的对象,这样效率肯定就 ...

不错,有心了
作者: lsunshine    时间: 2015-7-20 22:27
e咕噜 发表于 2015-7-20 21:45
StringBuffer 是个可变的对象,就是每次操作都是对对象本身进行操作,而不用生成新的对象,这样效率肯定就 ...

  :)  学习了
作者: e咕噜    时间: 2015-7-23 21:34
你们黑马的录取过了吗?
作者: 灰灰    时间: 2015-7-23 21:45
好详细啊

作者: 白马程序猿    时间: 2015-7-23 21:50
e咕噜 发表于 2015-7-20 21:45
StringBuffer 是个可变的对象,就是每次操作都是对对象本身进行操作,而不用生成新的对象,这样效率肯定就 ...

能不能举个例子,感觉概念有点模糊
作者: 曾云鹏    时间: 2015-7-23 21:55
刚看了下这章,两者最大的区别在于StringBuffer相对于String来说长度和内容都是可以改变的,StringBuffer相当于字符容器,改变其中的内容并不会产生新的对象.其次String覆盖了object的equal方法,而Stringbuffer没有覆盖equal()方法,最后String类对象可以进行+连接,而StringBuffer则不行会发生编译报错
作者: 三土    时间: 2015-7-23 22:25
2L正解!看效率和需求选择
作者: 天人之珠    时间: 2015-7-23 22:53
不错,有心了
作者: aurora_bessie    时间: 2015-7-23 23:06
学习了 !
作者: 人造番茄    时间: 2015-7-23 23:32
线程安全和不安全的区别
作者: 王鹏亮    时间: 2015-7-25 23:05
不错   要是在细点就好了




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