黑马程序员技术交流社区

标题: stringbuffer和stringbuilder的区别 [打印本页]

作者: Alex shaw    时间: 2013-3-24 16:26
标题: stringbuffer和stringbuilder的区别
本帖最后由 肖路宽 于 2013-3-25 09:15 编辑

如果,请讲以下两者的区别,效率,安全性或者其他方面,谢谢
作者: 魏福伟    时间: 2013-3-24 16:29
查一下api什么都有啦
作者: 炉海佳    时间: 2013-3-24 16:35
StringBuffer是1.0的,线程是同步的,所以效率稍低。stringbuilder是1.5的线程不同步,所以相比效率要高,建议用stringbuilder。如需同步自己加锁
作者: 炉海佳    时间: 2013-3-24 16:36
同步的肯定安全,安全了效率自然就低
作者: 孙宁    时间: 2013-3-24 16:40
StringBuffer和StringBuilder表示的字符串内容都可以被修改,StringBuilder是线程不安全的,运行效率高,Stringbuffer线程安全,效率低.如果只有一个线程访问,不存在不安全的因素,则用StringBuilder,如果在多线程环境下使用,那么最好用StringBuffer。
作者: 朱盛文    时间: 2013-3-24 16:51
StringBuffer是线程安全的,但是效率低;StringBuilder是线程不安全的,但是相对于前者效率要高些。
原理:线程安全就涉及到同步锁的问题,程序每次运行到同步锁时,都要进行一次判断,所以StringBuffer就降低了效率。
而StringBuffer不涉及到线程安全,所以就不涉及到锁的问题,减少了判断环节,所以效率就高。
作者: xuqangxing    时间: 2013-3-24 17:30
StringBuilder 线程是非安全的
StringBuffer线程是安全的
StringBuilder的速度更快
单线程操作字符串缓冲区下操作大量数据用StringBuilder
多线程操作字符串缓冲区下操作大量数据用StringBuiffer







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