黑马程序员技术交流社区

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

作者: 靳石磊    时间: 2013-1-26 10:58
标题: string和stringbuilder的区别
string和stringbuilder有什么区别?什么时候用string,什么时候用stiingbuilder?
作者: 黑马田杰    时间: 2013-1-26 11:02
主要区别是:
String对象是不可改变的,每次使用String类中的方法时,都要在内存中创建一个新的字符串对象,如果要重复修改,则消耗资源较多。
而StringBuilder类,修改字符串时不创建新对象。
故比如用一个循环来将多个字符串连接在一起时,可以考虑用StringBuiler类提升性能。
作者: 罗志强    时间: 2013-1-26 12:53
stiingbuilder是拼接字符串的时候用的,因为它的效率非常高,比普通str1+str2快N倍,如果有大量的字符串拼接工作,就必须得用这个,不然程序可能会崩溃
string就是普通字符串啦,它了很多特性的,一般就用string就好了,只有特殊要求的时候才会用stringbuilder
作者: 朱京辉    时间: 2013-1-26 13:53
String来做字符串的连接时效率非常低,但并不是所任何情况下都要用StringBuilder,当我们连接很少的字符串时可以用String,但当做大量的或频繁的字符串连接操作时,就一定要用StringBuilder。
作者: 钟炳杰    时间: 2013-1-26 14:26
1.特殊情况下用StringBuilder速度很快,效率高,有大量的字符串拼接的时候,也应该要用StringBuilder
2.StringBuilder和string使用时在内存中的占用是不一样的,不同的情况必须考虑何时使用StringBuilder、string。
作者: 王德钊    时间: 2013-1-26 19:30
其实你还少说一个,还有个StringBuffer。这三个很容易混 。1.操作数据比较少我们经常会用用 String 2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer。主要还是处理效率问题

作者: 千年虫    时间: 2013-1-29 21:48
StringBuilder的容量比真实存储的字符串要大,所以多次追加字符串不会重新创建对象,但当追加到字符串长度超过StringBuilder的容量后,StringBuilder也会重新创建对象。




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