A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘斌 中级黑马   /  2012-12-19 17:58  /  1496 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么在.Net类库中要同时存在这2个类?

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


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

string类的变量是存在于字符串连接池中的,做插入,替换等动态修改时会比较占用内存,
所以需要对字符串做动态修改时建议使用stringBuilder类

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马