C#中String和StringBuilder的区别

2020-05-11  本文已影响0人  Charles陽

String和StringBuilder的区别

String类型对象的特点:

1.它是引用类型,在堆上分配内存
2.运算时会产生一个新的实例
3.String 对象一旦生成不可改变(Immutable)
4.定义相等运算符(== 和 !=)是为了比较 String 对象的值(而不是引用)


二者的执行效率:

首先创建一个String对象str,并把“abc”赋值给str,然后在第三行中,其实JVM又创建了一个新的对象也名为str,然后再把原来的str的值和“de”加起来再赋值给新的str,而原来的str就会被JVM的垃圾回收机制(GC)给回收掉了,所以,str实际上并没有被更改,也就是前面说的String对象一旦创建之后就不可更改了。

而StringBuilder和StringBuffer的对象是变量,对变量进行操作就是直接对该对象进行更改,而不进行创建和回收的操作,所以速度要比String快很多


总结一下

1、string继承object类,stringbuilder继承AbstractStringBuilder。
2、string是不可变类,stringbuilder是可变类。
3、stringstringbuilder运行速度比string快。

三者在执行速度方面的比较:
StringBuilder > StringBuffer > String


上一篇 下一篇

猜你喜欢

热点阅读