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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周一川 中级黑马   /  2013-3-22 18:36  /  1676 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

StringBuffer和StringBuilder 他们的方法都是一样的为什要多定义一个string类的方法

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-22 23:08

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

5 个回复

正序浏览
StringBuffer是较早出现的一个类, 其中所有方法都是同步的, 线程安全, 但效率略低
在JDK5之后出现了StringBuilder类, 该类中的方法没有使用同步, 效率高. 单线程的程序使用这个类更好.
回复 使用道具 举报
StringBuffer和StringBuilder的功能是完全一样的
StringBuffer是较早的一个方法,有现成同步,更安全,但线程同步带来的问题是效率太低
StringBuilder是拟补StringBuffer后出现的一个方法,虽然没有线程同步相比之下不安全,但
它效率要更高点,所以适用单线程的话还是StringBuilder效率高点

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
戴乾刚 发表于 2013-3-22 19:00
1.  在执行速度方面的比较:StringBuilder >  StringBuffer   
2.  StringBuffer与StringBuilder,他们是字 ...

赞啊,懂的真多
回复 使用道具 举报
本帖最后由 戴乾刚 于 2013-3-22 19:01 编辑

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


1.如果要操作少量的数据用  String
2.单线程操作字符串缓冲区 下操作大量数据  StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
我的了解是,StringBuffer没有StringBuilder效率高,但是线程安全方面StringBuffer比StringBuilder安全性高。深入研究就不知道了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马