tostringbuilder,C#中StringBuilder用法以及和String的区别分析
一、C#中StringBuilder用法以及和String的区别分析
StringBuilder:字符串变量(非线程安全)。在内部,StringBuilder对象被当作是一个包含字符序列的变长数组。
StringBuffer:字符串变量(Synchronized,即线程安全)。如果要频繁对字符串内容进行修改,出于效率考虑最好使用StringBuffer,如果想转成String类型,可以调用StringBuffer的toString()方法。
String是不可变的对象,因此在每次对String类型进行改变的时候,都会生成一个新的String对象,然后将指针指向新的String对象,所以经常改变内容的字符串最好不要用String,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,JVM的GC就会开始工作,性能就会降低。
二、stringbuilder 能向前插入吗
1.不能向前插入。2.因为StringBuilder是一个可变的字符串序列,它的特点是可以在字符串末尾追加字符或字符串,但是无法在字符串的中间或前面插入字符或字符串。这是因为StringBuilder内部使用的是一个字符数组来存储字符串,而在数组中插入元素需要进行元素的移动,这样会导致性能下降,所以StringBuilder只支持向后追加。3.如果需要在字符串中间或前面插入字符或字符串,可以使用其他方法,比如使用String类的substring()方法和concat()方法来实现。
三、string与StringBuilder有什么区别
就是一个变量和常量的关系StringBuffer对象的内容可以修改而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象