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

隨筆 - 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>
            ●精品国产综合乱码久久久久| 亚洲欧美激情视频| 久久久精品2019中文字幕神马| 日韩午夜在线观看视频| 欧美国产日韩一区二区在线观看| 韩国av一区二区三区| 久热精品视频| 亚洲精品九九| 亚洲黄色影片| 老司机久久99久久精品播放免费| 国产精品拍天天在线| 在线亚洲美日韩| 亚洲经典三级| 欧美成人三级在线| 欧美黄色影院| 午夜精品视频在线观看| 先锋影音国产一区| 狠狠色丁香婷婷综合影院| 欧美sm重口味系列视频在线观看| 欧美二区在线看| 亚洲女女女同性video| 久久不射中文字幕| 99热精品在线观看| 午夜欧美精品久久久久久久| 亚洲综合电影一区二区三区| 午夜国产不卡在线观看视频| 狠狠久久婷婷| 亚洲国产一区二区在线| 欧美午夜精品久久久久久浪潮| 亚洲曰本av电影| 欧美在线精品一区| 夜夜嗨av一区二区三区四区| 性做久久久久久久久| 一本色道久久综合精品竹菊 | 亚洲一级片在线看| 欧美一区日韩一区| 中文久久精品| 久热精品视频在线观看一区| 欧美一级夜夜爽| 欧美日本精品| 欧美aⅴ99久久黑人专区| 国产精品高清在线| 亚洲九九九在线观看| 永久免费精品影视网站| 亚洲一区不卡| 一区二区三区日韩在线观看 | 亚洲人成网在线播放| 精品福利电影| 午夜亚洲视频| 久久久国产成人精品| 欧美日韩在线精品| 99热在线精品观看| 亚洲免费一在线| 国产精品每日更新在线播放网址| 亚洲国产欧美日韩另类综合| 亚洲激情视频在线| 欧美国产国产综合| 香蕉久久夜色精品| 在线一区二区三区四区五区| 99爱精品视频| 欧美gay视频激情| 免费成人高清视频| 激情一区二区三区| 久久精品九九| 欧美成人黑人xx视频免费观看| 国产精品一二三视频| 亚洲伊人网站| 久久黄色级2电影| 国产亚洲免费的视频看| 香蕉久久夜色精品国产使用方法| 欧美一区二区视频在线观看| 国产无遮挡一区二区三区毛片日本| 亚洲专区一区二区三区| 久久成人一区| 在线观看欧美日韩国产| 美女网站在线免费欧美精品| 亚洲电影免费观看高清完整版在线观看| 亚洲国产精品t66y| 欧美人体xx| 在线亚洲一区观看| 亚洲一区在线播放| 久久国产婷婷国产香蕉| 精品不卡一区| 欧美成人一区二区在线 | 国产一区二区激情| 久久久综合香蕉尹人综合网| 欧美激情免费在线| 一区二区三区欧美成人| 国产精品专区h在线观看| 欧美在线视频免费播放| 亚洲国产成人久久| 亚洲欧美日韩国产成人精品影院| 国产亚洲一区二区三区| 农夫在线精品视频免费观看| 一二三区精品| 久久亚洲一区二区| 在线观看中文字幕亚洲| 欧美日韩国产91| 久久成人羞羞网站| 91久久国产自产拍夜夜嗨| 欧美亚洲系列| 亚洲精品一区二区三区99| 国产精品黄色| 欧美1区免费| 欧美一区二区在线视频| 亚洲精品视频在线| 久久亚洲二区| 欧美在线视频一区二区三区| 亚洲精品一区二区三区蜜桃久| 国产精品视频导航| 欧美激情一区二区三区| 午夜精品在线看| 一二美女精品欧洲| 亚洲欧洲在线视频| 国产亚洲在线| 欧美日韩国产999| 久久这里有精品视频| 午夜精品福利视频| 亚洲精品麻豆| 亚洲国产精品久久久久秋霞蜜臀 | 国产精品自拍在线| 欧美日本精品一区二区三区| 久久久亚洲影院你懂的| 亚洲在线成人| 夜夜夜精品看看| 亚洲国产欧美久久| 欧美成人综合网站| 久久婷婷久久一区二区三区| 欧美一区二区在线播放| 亚洲视频在线看| 一本一本a久久| 亚洲老板91色精品久久| 影音先锋日韩精品| 国内精品嫩模av私拍在线观看| 国产精品久久看| 欧美日韩一区自拍| 欧美日韩一卡| 欧美日韩一区成人| 欧美日韩国产美女| 欧美日韩另类字幕中文| 欧美日韩p片| 欧美精品尤物在线| 欧美日本免费| 国产精品xxxxx| 国产精品久久久久久超碰| 欧美亚韩一区| 国产精品爽爽ⅴa在线观看| 国产精品久久久久久久久免费| 国产精品va在线| 国产精品欧美日韩一区| 国产日韩1区| 国内精品伊人久久久久av一坑| 国产主播一区二区| 亚洲第一黄网| 一区二区三区精品| 亚洲香蕉伊综合在人在线视看| 亚洲一区二区三区色| 亚洲欧美日韩国产综合精品二区| 亚洲欧美日韩人成在线播放| 欧美一进一出视频| 久久久噜噜噜久久中文字幕色伊伊 | 欧美金8天国| 国产精品尤物福利片在线观看| 国产视频欧美| 亚洲黄一区二区| 在线亚洲伦理| 久久人人爽人人爽爽久久| 欧美二区在线播放| 亚洲激情啪啪| 午夜精品999| 欧美成人精品1314www| 国产精品v日韩精品| 激情小说亚洲一区| 一区二区高清| 久久久91精品| 亚洲激情视频| 亚洲欧美一区二区视频| 男人插女人欧美| 国产精品黄页免费高清在线观看| 红桃视频一区| 亚洲一区免费网站| 免播放器亚洲一区| 一区二区三区成人| 久久亚洲欧美国产精品乐播| 国产精品国内视频| 最近中文字幕mv在线一区二区三区四区| 亚洲一区二区av电影| 欧美ed2k| 亚洲欧美中文日韩v在线观看| 免费不卡在线观看av| 亚洲一区999| 欧美母乳在线| 永久免费毛片在线播放不卡| 亚洲一区二区免费| 亚洲大片精品永久免费| 欧美一级艳片视频免费观看| 欧美色区777第一页| 91久久在线播放| 久久在线播放| 欧美一级片一区|