string是一个非常特殊的引用类型,不可被继承,因为它有值类型的很多特征:
1,imutable(不可变的):一个string定义的字符串,一旦设定,它将不可改变;string类中,没有任何一个可写的类成员,全是只读的;
2,‘==’比较运算符和值类型设计的一样:比较的是值;
字符串池:
在编译时,编译器会设置一个字符串池,每次实例化一个字符串,首先会在字符串池内进行查找:
1,若有完全相同的字符串,则将其地址赋值给变量
2,若没有,则实例化这个字符串,并放入字符串池内
这样可以节省很多的堆空间,尤其当相同字符串非常多的时候;
string builder:是一个可以实例化的对象:
1,实例化一个string builder时,会生成一个16的char[]的数组;
2,若数组不够用,会倍增为32的char[]数组,以此类推,这样好处是减少了新开辟内存生成数组的次数,提高了性能;
3,直到调用ToString(),将char[]转换为字符串;
其主要方法有:Append(),Insert(),Replace(),Remove(),Clear();
主要参数:
public stringbuilder(int capacity)
public stringbuilder(string value)
Value(指定string builder最开始‘装’着的字符串),Capacity(最初的容量设置,也是提升性能的关键);