String 与 StringBuilder

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37067895/article/details/85386289

字符串一旦创建就不可修改大小,每次使用System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。例如当在一个循环中将许多字符串连接在一起时,使用StringBuilder类可以提升性能。

所以对字符串添加或删除操作不频繁的话,就几个固定的string累加的时候就不需要StringBuilder了,毕竟StringBuilder的初始化也是需要时间的。对字符串添加或删除操作比较频繁的话那就用StringBuilder。

String a1 = "abc";//分配固定的内存大小

a1+="def";  //创建新的内存分配a1,代价比较昂贵

StringBuilder sb = new StringBuilder(20);  //指定分配大小

sb.Append('abc');  //分配到堆区

sb.Append('def');  //不会被销毁,而是直接追加到后面。

猜你喜欢

转载自blog.csdn.net/qq_37067895/article/details/85386289