美文网首页
String 与 StringBuilder

String 与 StringBuilder

作者: 在夢里 | 来源:发表于2018-12-27 15:30 被阅读0次

    字符串一旦创建就不可修改大小,每次使用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');  //不会被销毁,而是直接追加到后面。

    相关文章

      网友评论

          本文标题:String 与 StringBuilder

          本文链接:https://www.haomeiwen.com/subject/pinrlqtx.html