C#——string和StringBuilder
string是引用类型,是不可变的,其中有一个方法Intern,用于返回一个字符串的引用,该字符串位于一个称作驻留池(intern pool)的地方。Intern方法接受一个以编程方式创建的字符串参数(个人理解为该字符串还没有加入驻留池),并且返回驻留池中对同一字符串(即上述参数值)的引用。
示例:
string str1="string 1";//驻留池中的字符串
string objStr1=string.Concat("string ","1");//已编程的方式创建的字符串
string internedStr1=string.Intern(objStr1);获取与objStr1同值的驻留池引用
其中,(object)objStr1==(object)str1返回false;(object)internedStr1==(object)str1返回true.
之所以强类型转换为object,是因为object进行相等性比较,就是比较引用是否相等。
StringBuilder,对字符串改变,不会引发创建新对象产生的开销,在对字符串进行4次处理后应该使用StringBuilder而不是string.
浙公网安备 33010602011771号