StringBuilder对象
通过上面的分析可以看出,String类型在做字符串的连接操作时,效率是相当低的,并且由于每做一个连接操作,都会在内存中创建一个新的对象,占用了大量的内存空间。这样就引出StringBuilder对象,StringBuilder对象在做字符串连接操作时是在原来的字符串上进行修改,改善了性能。这一点我们平时使用中也许都知道,连接操作频繁的时候,使用StringBuilder对象。但是这两者之间的差别到底有多大呢?来做一个测试:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 |
1using System;2using System.Text;34namespace Demo55{6 /**//// <summary>7 /// String和StringBulider比较8 /// </summary>9 public
class Test10 {11 public
static void Main(string[] args)12 {13 string
a = "";14 StringBuilder s = new
StringBuilder();1516 int
times = 10000;17 int
start,end;18 19 /**////测试String所用的时间20 start = Environment.TickCount;21 for(int
i=0;i<times;i++)22 {23 a += i.ToString();24 }25 end = Environment.TickCount;26 Console.WriteLine((end-start));27 28 /**////测试StringBuilder所用的时间29 start = Environment.TickCount;30 for(int
i=0;i<times;i++)31 {32 s.Append(i.ToString());33 }34 end = Environment.TickCount;35 Console.WriteLine((end-start));3637 Console.ReadLine();38 }39 }40}41运行结果:8840 |
通过上面的分析,可以看出用String来做字符串的连接时效率非常低,但并不是所任何情况下都要用StringBuilder,当我们连接很少的字符串时可以用String,但当做大量的或频繁的字符串连接操作时,就一定要用StringBuilder。
.NET中的字符串(5):字符串驻留,布布扣,bubuko.com
原文:http://www.cnblogs.com/hoosway/p/3600600.html