黑马程序员技术交流社区
标题:
string 和 StringBuilder 有什么区别?
[打印本页]
作者:
蜗牛阿布
时间:
2014-7-22 00:41
标题:
string 和 StringBuilder 有什么区别?
本帖最后由 蜗牛阿布 于 2014-7-23 11:26 编辑
如题,string 和 StringBuilder 有什么区别?不是很理解,希望理解的伙伴解释一下:)
作者:
许庭洲
时间:
2014-7-22 05:58
1. String在进行运算时(如赋值,拼接)会产生一个新的实例,而StringBuilder则不会;
2.如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类;
3.String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没有错,但是在.NET框架下,这个操作实在是划不来,因为系统先市把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去,耗了不少时间。
4.而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Apeend方法,能够在已有对象的原地进行字符串的修改,简单而且直接。
作者:
--_—
时间:
2014-7-22 07:56
我的理解就是:string是引用类型,字符串一旦创建,就不能修改它;
StringBuilder可以修改, StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值。此值称为该对象的容量,不应该把它与当前StringBuilder 对象容纳的字符串长度混淆在一起。例如,可以创建 StringBuilder 类的带有字符串“Hello”(长度为 5)的一个新实例,同时可以指定该对象的最大容量为 25。当修改StringBuilder 时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。可以使用重载的构造函数之一来指定 StringBuilder 类的容量。
作者:
乔相坤
时间:
2014-7-22 09:18
路过,学习一下
作者:
深夜的空气
时间:
2014-7-22 09:24
2L正解,通熟易懂
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2