string 与stringbuilder的区别与相同点

  不同点:

string对象是不可改变的,每次使用string类方法的时候,都会创建出一个新的字符串对象,这就意味着计算机需要为新对象的建立分配新的空间,这对系统的消耗是非常昂贵的。

如果说我们需要对一个字符串进行反复修改的时候,我们可以使用stringbuilder。

  虽然    StringBuilder    对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它的最大容量指定一个值。StringBuilder的默认初始容量是16,使用stringbuilder.Append()追加一个字符串的时候,当字符数大于最大容量值的时候,StringBuilder会自动申请一个更大的字符数组,在新的字符数组分配完成后,将原有字符数组中的字符复制到新字符数组中,,原字符数组被GC回收,因此设置合适的初始容量的非常必要的,尽量减少内存申请和对象创建。

相同点:

StringBuilder与string一样,有一个char[]字符数组,负责维护字符串内容。

猜你喜欢

转载自www.cnblogs.com/heipi-1799700431/p/9153482.html