字符串的特点
- 字符串是引用类型 存储在堆空间中,在栈中存储了该数据的引用地址
- 字符串是不可改变的,当给字符串重新赋值的时候,旧值并没有销毁,而是重新开辟一块新空间来存储新值,并把新的地址赋给变量
- 当对一个字符串变量重复赋值的时候,会产生大量垃圾数据信息。执行效率很低
String Builder简介
- 引用类型
- 字符串构建器
- 它会一直操作同一块内存空间,不会产生垃圾数据,且效率高于string类型的字符串变量
创建StringBuilder类型的变量
- StringBuilder依赖于System.Text命名空间
StringBuilder sb = new StringBuilder(); //创建一个对象
向sb中追加数据
- sb.Append()
- sb.ToString() //转换为字符串
测试代码
Stopwatch sw = new Stopwatch();
sw.Start();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 90000; i++)
{
sb.Append(i);
}
// Console.WriteLine(sb.ToString());
sw.Stop();
Console.WriteLine(sw.Elapsed); //0.032 9万条数据
sw.Start();
string name = "";
for (int i = 0; i < 90000; i++)
{
name += i;
}
// Console.WriteLine(sb.ToString());
sw.Stop();
Console.WriteLine(sw.Elapsed); //22s
Console.ReadKey();