zoukankan      html  css  js  c++  java
  • C# String StringBuilder 区别

    这篇博客,纯参考。主要为了自己也复习一遍,过一下其中的原理。

     string aTest = "abc";//分配固定的内存大小
                aTest += "ddd"; //销毁原先的数据再来分配,消耗大
                StringBuilder sb = new StringBuilder(20);//指定分配大小,指定分配内存大小,性能就会得到提升。
                //如果超过指定大小系统,系统会倍增,自动增加的,40,60,80
                sb.Append("aaa");//分配到堆区
                sb.Append("ddd");//不会被销毁,直接加到后面
    

    StringBuilder 并不会重新创建一个string对象,如果stringbuilder没有预先定义长度,默认长度为16,

    大于16而小于32,时,会自动重新分配内存为32,即16的倍数。

    使用StringBuilder需要预先知道长度,避免浪费空间。

    总结:

    string声明之后内存大小是不可以修改的,但是StringBuilder可以自由扩展大小

    string 分配到栈区,stringbuilder分配到堆区。

    对字符串修改比较频繁的情况使用StringBuilder。

    原文参考 :http://www.cnblogs.com/qq610540622/p/4621405.html

  • 相关阅读:
    交互式输入编辑与历史命令补全
    string模板
    textwrap——文本包裹和填充模块解析
    python质量控制
    命令自动补全模块rlcomplete
    密码输入模块getpass
    交互模式启动配置文件
    pprint模块解析
    python基础知识--2字符串
    python基础知识--1注释
  • 原文地址:https://www.cnblogs.com/u3ddjw/p/6823346.html
Copyright © 2011-2022 走看看