青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 224  文章 - 41  trackbacks - 0
<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

享受編程

常用鏈接

留言簿(11)

隨筆分類(159)

隨筆檔案(224)

文章分類(2)

文章檔案(4)

經典c++博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

原文地址:http://www.cnblogs.com/shangxijie/archive/2008/08/01/1258233.html

1.string 和 stringbuilder的區別:

String在任何語言中,都有它的特殊性,在.NET中也是如此。它屬于基本數據類型,也是基本數據類型中唯一的引用類型。字符串可以聲明為常量,但是它卻放在了堆中。

一:不可改變對象

在.NET中String是不可改變對象,一旦創建了一個String對象并為它賦值,它就不可能再改變,也就是你不可能改變一個字符串的值。這句話初聽起來似乎有些不可思議,大家也許馬上會想到字符串的連接操作,我們不也可以改變字符串嗎?看下面這段代碼:

 1 using System;
 2
 3 namespace Demo1
 4  {
 5      ///<summary>
 6     /// String連接測試
 7     /// </summary>
 8     public class Test
 9      {
10         public static void Main(string[] args)
11          {
12             string a = "1234";
13             Console.WriteLine(a);
14
15             a += "5678";
16             Console.WriteLine(a);
17             Console.ReadLine();
18         }
19     }
20 }
21
運行的結果:
 1234
 
 12345678
 
看起來我們似乎已經把MyStr的值從“1234”改為了“12345678”。事實是這樣的嗎?實際上并沒有改變。在第5行代碼中創建了一個String對象它的值是“1234”,MyStr指向了它在內存中的地址;第七行代碼中創建了一個新的String對象它的值是“12345678”,MyStr指向了新的內存地址。這時在堆中其實存在著兩個字符串對象,盡管我們只引用了它們中的一個,但是字符串“1234”仍然在內存中駐留。

 

 

二:引用類型

前面說過String是引用類型,這就是如果我們創建很多個相同值的字符串對象,它在內存中的指向地址應該是一樣的。也就是說,當我們創建了字符串對象a,它的值是“1234”,當我們再創建一個值為“1234”的字符串對象b時它不會再去分配一塊內存空間,而是直接指向了a在內存中的地址。這樣可以確保內存的有效利用??聪旅娴拇a:

 1 using System;
 2
 3 namespace Demo2
 4  {
 5      ///<summary>
 6     /// String引用類型測試
 7     /// </summary>
 8     public class Test
 9      {
10         public static void Main(string[] args)
11          {
12             string a = "1234";
13
14             Console.WriteLine(a);
15
16             Test.Change(a);
17
18             Console.WriteLine(a);
19             Console.ReadLine();
20         }
21
22         public static void Change(string s)
23          {
24             s = "5678";
25         }
26     }
27 }

運行結果:
 1234
 
 1234

做一個小改動,注意Change(ref string s)
 1 using System;
 2
 3 namespace Demo2
 4  {
 5      /// <summary>
 6     /// String引用類型測試
 7     /// </summary>
 8     public class Test
 9      {
10         public static void Main(string[] args)
11          {
12             string a = "1234";
13
14             Console.WriteLine(a);
15
16             Test.Change(ref a);
17
18             Console.WriteLine(a);
19             Console.ReadLine();
20         }
21
22         public static void Change(ref string s)
23          {
24             s = "5678";
25         }
26     }
27 }
28

運行結果:
 1234
 5678

 

三:StringBuilder對象
通過上面的分析可以看出,String類型在做字符串的連接操作時,效率是相當低的,并且由于每做一個連接操作,都會在內存中創建一個新的對象,占用了大量的內存空間。這樣就引出StringBuilder對象,StringBuilder對象在做字符串連接操作時是在原來的字符串上進行修改,改善了性能。這一點我們平時使用中也許都知道,連接操作頻繁的時候,使用StringBuilder對象。但是這兩者之間的差別到底有多大呢?來做一個測試:

 1 using System;
 2 using System.Text;
 3
 4 namespace Demo5
 5  {
 6      ///<summary>
 7     /// String和StringBulider比較
 8     /// </summary>
 9     public class Test
10      {
11         public static void Main(string[] args)
12          {
13             string a = "";
14             StringBuilder s = new StringBuilder();
15
16             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));
36
37             Console.ReadLine();
38         }
39     }
40 }
41

運行結果:
 884 
 0

通過上面的分析,可以看出用String來做字符串的連接時效率非常低,但并不是所任何情況下都要用StringBuilder,當我們連接很少的字符串時可以用String,但當做大量的或頻繁的字符串連接操作時,就一定要用StringBuilder。

 

posted on 2010-08-22 23:14 漂漂 閱讀(466) 評論(0)  編輯 收藏 引用 所屬分類: c#開發
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日本成人| 伊人久久男人天堂| 国产欧美日韩综合| 午夜亚洲精品| 亚洲免费视频成人| 中日韩男男gay无套| 亚洲美女在线看| 中文日韩欧美| 亚洲无毛电影| 欧美亚洲一区三区| 久久美女性网| 欧美成人网在线| 亚洲成人资源网| 久久黄色网页| 乱人伦精品视频在线观看| 美国十次了思思久久精品导航| 国产私拍一区| 国内成人精品一区| 亚洲国产91| 日韩一级在线| 午夜欧美视频| 免费在线日韩av| 亚洲日本va在线观看| 日韩视频一区二区在线观看| 亚洲一区二区三区777| 午夜精品美女自拍福到在线 | 久久久999精品视频| 快播亚洲色图| 91久久精品国产91性色tv| 亚洲图片你懂的| 亚洲高清视频在线观看| 亚洲综合色自拍一区| 久久久亚洲午夜电影| 欧美成人综合一区| 国产精品一区在线观看你懂的| 精品成人在线视频| 亚洲美女网站| 西瓜成人精品人成网站| 欧美福利小视频| 亚洲一区二区在线免费观看视频 | 国产精品久久网| 亚洲第一综合天堂另类专| 一本综合精品| 久久精品国产欧美激情| 亚洲国产欧美一区| 欧美一区国产一区| 欧美日韩成人在线观看| 尤物精品国产第一福利三区| 一区二区三区成人| 欧美jizz19hd性欧美| 亚洲一区二区视频在线观看| 欧美日韩国产成人精品| 在线观看不卡| 欧美怡红院视频| 亚洲美女在线看| 免费在线观看精品| 国产日韩欧美在线看| 亚洲视频二区| 亚洲区免费影片| 国产亚洲成av人片在线观看桃| 久久精品99国产精品| 国产精品久久久久国产a级| 日韩网站在线看片你懂的| 久久女同互慰一区二区三区| 午夜精品理论片| 国产精品视频大全| 亚洲女女女同性video| 亚洲免费av网站| 欧美精品免费视频| av72成人在线| 欧美va天堂va视频va在线| 亚洲精品国产拍免费91在线| 亚洲第一黄网| 久久精品国产v日韩v亚洲| 在线综合+亚洲+欧美中文字幕| 麻豆精品91| 亚洲第一狼人社区| 蜜桃久久精品乱码一区二区| 小黄鸭精品aⅴ导航网站入口 | 韩国三级电影久久久久久| 欧美一区二区三区免费视频| 国产精品视频你懂的| 亚洲午夜精品久久久久久app| 欧美日韩另类综合| 亚洲婷婷在线| av不卡在线| 国产精品电影网站| 欧美一区综合| 久久综合福利| av成人天堂| 亚洲一级二级| 国产亚洲美州欧州综合国| 久久午夜视频| 欧美99在线视频观看| 一本一本a久久| 亚洲一区二区精品| 国产性猛交xxxx免费看久久| 欧美freesex交免费视频| 欧美激情在线免费观看| 亚洲淫片在线视频| 久久国产免费| 亚洲精品免费一二三区| 中文网丁香综合网| 国产主播精品在线| 欧美电影美腿模特1979在线看| 欧美久久一区| 久久精品国产77777蜜臀| 欧美成人国产一区二区| 亚洲一区精彩视频| 久久视频国产精品免费视频在线| 亚洲九九精品| 小处雏高清一区二区三区| 在线观看一区| 中文在线资源观看网站视频免费不卡 | 99天天综合性| 亚洲欧美日韩中文视频| 国模私拍一区二区三区| 亚洲精品影视在线观看| 国产亚洲日本欧美韩国| 亚洲美女在线看| 亚洲大片在线| 午夜激情久久久| 一区二区日韩伦理片| 欧美一区二区三区视频在线 | 亚洲欧美在线aaa| 麻豆9191精品国产| 久久亚洲欧洲| 欧美偷拍一区二区| 亚洲第一精品久久忘忧草社区| 国产精品爽爽爽| 91久久在线播放| 国产在线拍偷自揄拍精品| 日韩一区二区免费高清| 亚洲经典三级| 久久在线视频在线| 性欧美1819性猛交| 国产精品久久国产精麻豆99网站| 欧美激情无毛| 亚洲国产精品久久久久秋霞蜜臀 | 亚洲视频视频在线| 另类图片国产| 麻豆精品视频在线观看视频| 国产精品乱人伦中文| 亚洲伦理在线观看| 亚洲精品乱码久久久久| 麻豆成人综合网| 蜜臀av性久久久久蜜臀aⅴ| 国产精品日韩精品欧美在线| av不卡在线看| 一区二区国产日产| 欧美mv日韩mv国产网站| 亚洲一区二区在线播放| 韩国一区二区三区美女美女秀| 亚洲桃色在线一区| 亚洲欧美99| 国产欧美日韩在线视频| 欧美一区二区成人6969| 欧美中文字幕| 国产一区二区三区在线观看免费视频| 亚洲精品色婷婷福利天堂| a4yy欧美一区二区三区| 欧美区在线观看| 亚洲精品久久久蜜桃 | 亚洲欧美日韩国产综合| 欧美视频一区二区三区四区| 99视频在线观看一区三区| 亚洲摸下面视频| 国产一区二区三区自拍| 久久国产精品99国产| 久久先锋资源| 亚洲国产影院| 欧美ed2k| 在线综合欧美| 久久精品五月婷婷| 韩日精品视频一区| 欧美1区视频| 亚洲视频久久| 久久久九九九九| 91久久国产精品91久久性色| 欧美成人69| 一区二区三区欧美亚洲| 一区二区三区视频观看| 小处雏高清一区二区三区| 蜜桃av综合| 99re66热这里只有精品3直播 | 欧美精品一区二区久久婷婷| 日韩视频免费观看高清在线视频 | 亚洲国产婷婷香蕉久久久久久| 久久亚洲欧美国产精品乐播| 亚洲精品久久在线| 亚洲欧美日韩综合一区| 国内揄拍国内精品少妇国语| 欧美成人国产| 欧美一区二区黄| 亚洲三级电影全部在线观看高清| 亚洲欧美日韩一区二区在线| 亚洲狠狠丁香婷婷综合久久久| 欧美日韩在线三区| 久久蜜臀精品av| 亚洲字幕一区二区|