黑马程序员技术交流社区

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

作者: 袁园    时间: 2012-11-25 11:26
标题: StringBuilder和StringBuffer的用法
StringBuilder和StringBuffer的用法有什么区别啊?
作者: 李有    时间: 2012-11-25 11:28
JDK1.5版本之后出现了StringBuilder。
StringBuffer是线程同步。
StringBuilder是线程不同步。
以后开发,建议使用StringBuilder
StringBuilder可提高效率
将StringBuilder的实例用于多个线程是不安全的。如果需要这样同步,则建议使用StringBuffer。
作者: 崔利鹏    时间: 2012-11-25 11:37
StringBuilder类是JDK 5.0引入的新的类, 实质上,就是线程安不安全的问题,StringBuffer是一个线程安全的StringBuilder,如果只在同一个线程内对字符串进行操作, StringBuilder会更快一些,如果是使用多线程进行操作,需要使用StringBuffer.
StringBuilder是非线程安全的,StringBuffer是线程安全的。

作者: 赵红萍    时间: 2012-11-25 11:48
StringBuffer线程安全的可变字符序列.一个类似于 String 的字符串缓冲区,但不能修改.StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据.StringBuffer称为字符串缓冲区,它的工作原理是:预先申请一块内存,存放字符序列,如果字符序列满了,会重新改变缓存区的大小,以容纳更多的字符序列.
StringBuffer是可变对象,StringBuilder和StringBuffer的区别是StringBuffer中所有的方法都是同步的,是线程安全的,但速度慢,StringBuilder的速度快,但不是线程安全的.
作者: 王舒玮    时间: 2012-11-25 22:18
本帖最后由 王舒玮 于 2012-11-25 22:20 编辑

StringBuffer是JDK1.0就存在的老类了,它是线程安全的,但效率不高;
StringBuilder是JDK1.5才添加进来的新类,它不是线程安全的,但效率要高。
StringBuffer:等待使用的String存放在StringBuffer中,我们有一个字符串,需要加工,然后再去使用,把字符串放到缓冲区中,然后加工,最后从缓冲区中取出字符串。
StringBuilder:在JDK5.0之后,编译器会对字符串的连接进行优化,例如:s1 = s1 + “b”;这时编译器会使用StringBuilder类来优化程序。




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