黑马程序员技术交流社区
标题:
StringBuffer和StringBuilder有什么区别
[打印本页]
作者:
江峰渔火
时间:
2014-6-14 15:24
标题:
StringBuffer和StringBuilder有什么区别
StringBuffer和StringBuilder有什么区别,不同点是什么
作者:
crazylong
时间:
2014-6-14 15:32
开发的时候用StringBuilder,它是新出来的 线程不同步
作者:
老梁
时间:
2014-6-14 15:38
http://www.jb51.net/article/31750.htm看这里,有详细介绍
作者:
江峰渔火
时间:
2014-6-14 15:38
crazylong 发表于 2014-6-14 15:32
开发的时候用StringBuilder,它是新出来的 线程不同步
具体区别是什么
作者:
Rodgers
时间:
2014-6-14 15:45
①从值是否可变的角度讲。
String一旦定义后其值就不能改变,而StringBuffer相当于一个装字符串的可变容器,可以对装的内容进行增删改查等操作
②从效率的角度讲
StringBuffer的append方法比“+”高效。
字符串连接操作中StringBuffer的效率要比String高:
每次使用String的 "+",都是new了一个新的String 对象,
而StringBuffer 的append()方法,都是在原有的对象上进行的操作,
String str = new String("welcome to ");
str += "here";
的处理步骤实际上是通过建立一个StringBuffer,让侯调用append(),最后
再将StringBuffer toSting();
这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上要打折扣.
并且由于String 对象是不可变对象,每次操作Sting 都会重新建立新的对象来保存新的值.
这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.
因此,当需要对字符串进行多次修改时,最好用StringBuffer。
作者:
黄梁梦想享
时间:
2014-6-14 16:15
StringBuilder是后JDK1.5后才出来的,两个方法基本相同,区别就是StingBuffer是同步的而StringBuilder是不同步的。将StingBuilder的实例用于多个线程是不安全的。如果需要同步就建议用StingBuffer。牛叉的话自己加锁也行。
作者:
IStudying
时间:
2014-6-14 18:27
stringBuffer线程安全,适用于多线程 stringbuilder线程不安全,但效率高,适用于单线程
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2