一、string类和stringbuild类的区别为什么一定要有这两个类
两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。
而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。
如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。
二、C#中StringBuilder用法以及和String的区别分析
StringBuilder:字符串变量(非线程安全)。在内部,StringBuilder对象被当作是一个包含字符序列的变长数组。
StringBuffer:字符串变量(Synchronized,即线程安全)。如果要频繁对字符串内容进行修改,出于效率考虑最好使用StringBuffer,如果想转成String类型,可以调用StringBuffer的toString()方法。
String是不可变的对象,因此在每次对String类型进行改变的时候,都会生成一个新的String对象,然后将指针指向新的String对象,所以经常改变内容的字符串最好不要用String,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,JVM的GC就会开始工作,性能就会降低。
三、C#里面是只有StringBuilder,没有Stringbuffer吗
Java里的java.lang.StringBuffer就是C#里的System.Text.StringBuilder,反倒是java.lang.StringBuilder在C#里没有对应类型。题主这是望文生义了。在Java里StringBuffer跟StringBuilder的区别在于前者是线程安全的,后者是非线程安全的。而C#只有线程安全的StringBuilder,没提供非线程安全的类型。
四、string与StringBuilder有什么区别
就是一个变量和常量的关系StringBuffer对象的内容可以修改而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象
好了,文章到这里就结束啦,如果本次分享的stringbuilder是什么类型和stringbuilder string问题对您有所帮助,还望关注下本站哦!