黑马程序员技术交流社区

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

作者: 周一川    时间: 2013-3-22 18:36
标题: StringBuffer和StringBuilder的区别
StringBuffer和StringBuilder 他们的方法都是一样的为什要多定义一个string类的方法
作者: 曹春贵    时间: 2013-3-22 18:58
我的了解是,StringBuffer没有StringBuilder效率高,但是线程安全方面StringBuffer比StringBuilder安全性高。深入研究就不知道了
作者: 戴乾刚    时间: 2013-3-22 19:00
本帖最后由 戴乾刚 于 2013-3-22 19:01 编辑

1.  在执行速度方面的比较:StringBuilder >  StringBuffer   
2.  StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。
3.  StringBuilder:线程非安全的
  StringBuffer:线程安全的
    当在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。


1.如果要操作少量的数据用  String
2.单线程操作字符串缓冲区 下操作大量数据  StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
作者: 曹春贵    时间: 2013-3-22 19:02
戴乾刚 发表于 2013-3-22 19:00
1.  在执行速度方面的比较:StringBuilder >  StringBuffer   
2.  StringBuffer与StringBuilder,他们是字 ...

赞啊,懂的真多
作者: 安鹏宇    时间: 2013-3-22 19:02
StringBuffer和StringBuilder的功能是完全一样的
StringBuffer是较早的一个方法,有现成同步,更安全,但线程同步带来的问题是效率太低
StringBuilder是拟补StringBuffer后出现的一个方法,虽然没有线程同步相比之下不安全,但
它效率要更高点,所以适用单线程的话还是StringBuilder效率高点
作者: 张宝    时间: 2013-3-22 19:05
StringBuffer是较早出现的一个类, 其中所有方法都是同步的, 线程安全, 但效率略低
在JDK5之后出现了StringBuilder类, 该类中的方法没有使用同步, 效率高. 单线程的程序使用这个类更好.




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