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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 毛羚杨 中级黑马   /  2014-2-23 15:52  /  972 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Stringbuffer 和Stringbuilder 的区别   都知道Stringbuilder的效率比较高 有时候咱们都宁愿用Stringbuilder多一点, 那么哪里可以使用Stringbuilder,,它能够有什么样的局限性呢 ?

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

5 个回复

正序浏览
Stringbuffer和Stringbuilder最大的区别就是效率问题.
Stringbuffer是jdk1.5之前的操作字符串的对象,他是同步的,在效率上要低于Stringbuilder.
而Stringbuilder是jdk1.4以后出现的操作字符串的对象,他是不同步的,所以在效率上要高于Stringbuffer.

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
赵永生 发表于 2014-2-23 17:52
1.  在执行速度方面的比较:StringBuilder >  StringBuffer   
2.  StringBuffer与StringBuilder,他们是 ...

这个整理比较系统 谢谢哈 我收下当笔记了,看着很清晰……
回复 使用道具 举报
1.  在执行速度方面的比较:StringBuilder >  StringBuffer   
2.  StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。
3.  StringBuilder:线程非安全的
  StringBuffer:线程安全的
    当在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。


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

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报 2 0
我要的幸福呢 发表于 2014-2-23 17:43
StringBuffer是线程同步的,如果用在多线程中比StringBuilder安全,当然也可以在多线程中使用StringBuilder ...

刚刚看了高新技术张孝祥老师的解释,风趣幽默 哈哈 我能理解了……
回复 使用道具 举报
StringBuffer是线程同步的,如果用在多线程中比StringBuilder安全,当然也可以在多线程中使用StringBuilder自己加锁。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

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