黑马程序员技术交流社区

标题: String类与StringBuilder类区别 [打印本页]

作者: 刘斌    时间: 2012-12-19 17:58
标题: String类与StringBuilder类区别
为什么在.Net类库中要同时存在这2个类?

String是一个Unicode字符的有序集合,用于表示文本。
一个字符串对象的有序集合系统.。字符对象代表一个字符串。
字符串的值对象的内容是有序集合,这个价值是不可变的。  
一个字符串对象称为不变的(只读),因为它的价值不能修改一旦建立。
方法,似乎修改一个字符串对象实际上会返回一个新字符串对象,其中包含修改;


StringBuilder这个类代表一个可变的字符序列。这个值是可变的,
因为它可以修改一旦建立通过添加,删除,替换,或者插入字符。
相比之下,看到String类。大部分的方法,
这些方法可以修改这个类的实例返回一个引用相同的实例。
因为一个引用返回的实例,可以调用一个方法或属性引用。
这可以方便,如果你想写一个声明,一个接一个链连续操作。  
一个StringBuilder的能力的最大字符数的实例可以存储在任何给定的时间,
和大于或等于字符串的长度表示值的实例;
StringBuilder可以随意更改字符串的长度,
String会初始一个长度,但是更改会再次重新分配内存空间,性能损耗很大。
需要频繁变动字符串长读的变量最好定义为StringBuilder。从而节省短时期的内存
string类实例相当于一个常量,如果要改变它,实际上是新生成了一个实例,有新的存储空间。
StringBuilder类的存储空间的是动态扩展的,对其实例上做增删改,并不会重新分配存储空间。

string类的变量是存在于字符串连接池中的,做插入,替换等动态修改时会比较占用内存,
所以需要对字符串做动态修改时建议使用stringBuilder类
作者: 许庭洲    时间: 2012-12-19 17:59
值得学习ing!




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