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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Alex shaw 中级黑马   /  2013-3-24 16:26  /  2107 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 肖路宽 于 2013-3-25 09:15 编辑

如果,请讲以下两者的区别,效率,安全性或者其他方面,谢谢

评分

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

查看全部评分

6 个回复

倒序浏览
查一下api什么都有啦
回复 使用道具 举报
StringBuffer是1.0的,线程是同步的,所以效率稍低。stringbuilder是1.5的线程不同步,所以相比效率要高,建议用stringbuilder。如需同步自己加锁
回复 使用道具 举报
同步的肯定安全,安全了效率自然就低
回复 使用道具 举报
StringBuffer和StringBuilder表示的字符串内容都可以被修改,StringBuilder是线程不安全的,运行效率高,Stringbuffer线程安全,效率低.如果只有一个线程访问,不存在不安全的因素,则用StringBuilder,如果在多线程环境下使用,那么最好用StringBuffer。

评分

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

查看全部评分

回复 使用道具 举报
StringBuffer是线程安全的,但是效率低;StringBuilder是线程不安全的,但是相对于前者效率要高些。
原理:线程安全就涉及到同步锁的问题,程序每次运行到同步锁时,都要进行一次判断,所以StringBuffer就降低了效率。
而StringBuffer不涉及到线程安全,所以就不涉及到锁的问题,减少了判断环节,所以效率就高。

评分

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

查看全部评分

回复 使用道具 举报
StringBuilder 线程是非安全的
StringBuffer线程是安全的
StringBuilder的速度更快
单线程操作字符串缓冲区下操作大量数据用StringBuilder
多线程操作字符串缓冲区下操作大量数据用StringBuiffer


评分

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

查看全部评分

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