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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗胜华 中级黑马   /  2013-3-27 11:50  /  1999 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谁能告诉我StringBuffer和StringBuilder的区别是?
详细点

5 个回复

倒序浏览
StringBuffer 是最早出来的缓冲区,它考虑到了线程安全。
但是我们通常都是用到字符串缓冲区的时候都是单线程,的涉及不
到线程安全问题,这时候用StringBuffer就降低效率。
为了解决这个问题,JDK又推出了StringBuilder,它是不同步,是线程不安全的
但是StringBuildert在单线程中全比较安全。
所以单线程的,或者不涉及到线程安全的多线程我们推荐选择StringBuiler
只有需要同步,多线程访问的时候才选用StringBuffer

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
StringBuffer和Stringbuilder都是可变字符串,两个的用法基本相同
只是StringBuffer在多线程中安全的,效率相对低;而StringBuilder在多线程中是不安全的,效率相对高
回复 使用道具 举报
一样,只是StringBuffer线程安全,StringBuild线程不安全。应该是先有的StringBuild后有的StringBuffer。
回复 使用道具 举报
朱德帅 发表于 2013-3-27 12:25
一样,只是StringBuffer线程安全,StringBuild线程不安全。应该是先有的StringBuild后有的StringBuffer。 ...

StringBuilder不是StringBuild ,现有StringBuffer(jdk1.0)后有的StringBuilder(jdk1.5)
回复 使用道具 举报
1.  在执行速度方面的比较:StringBuilder >  StringBuffer   2.  StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。3.  StringBuilder:线程非安全的  StringBuffer:线程安全的    当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马