C#-string-stringBuilder

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(最初的容量设置,也是提升性能的关键);

如果这篇文章,对你有帮助,请点击关注,我会持续更新......
原文地址:https://www.cnblogs.com/-GoFurther/p/13738941.html