string與stringbuilder兩者的區(qū)別
String 對象是不可改變的。每次使用 System.String 類中的方法之一時,都要在內存中創(chuàng)建一個新的字符串對象,這就需要為該新對象分配新的空間。
StringBuilder 對象是動態(tài)對象,允許擴充它所封裝的字符串中字符的數(shù)量,但是您可以為它可容納的最大字符數(shù)指定一個值,當修改 StringBuilder 時,在達到容量之前,它不會為其自己重新分配空間。當達到容量時,將自動分配新的空間且容量翻倍。可以使用重載的構造函數(shù)之一來指定 StringBuilder 類的容量。
例如: StringBuilder hr = new StringBuilder(); hr.Append("a")
他不會頻繁申請內存空間,他會自動向后擴展。
兩者的區(qū)別:
1. string 對象時恒定不變的,stringBuider對象表示的字符串是可變的。stringBuilder是.net提供的動態(tài)創(chuàng)建string的高效方式,以克服string對象恒定性帶來的性能影響。
2. 對于簡單的字符串連接操作,在性能上stringBuilder并不一定總是優(yōu)于string。因為stringBuider對象創(chuàng)建代價較大,在字符串目標連接較少的情況下,過度濫用stringBuilder會導致性能的浪費,只有大量的或者無法預知次數(shù)的字符串操作,才考慮stringBuilder來實現(xiàn)。事實上,一般連接次數(shù)設置100次以內,根本看不出兩者的性能差別。
3. 當修改字符串信息時,此時不許創(chuàng)建對象,可以使用stringBuilder對象。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支持。如果你想了解更多相關內容請查看下面相關鏈接
上一篇:C#制作二維柱狀圖方法
欄 目:C#教程
下一篇:WPF ProgressBar實現(xiàn)實時進度效果
本文標題:string與stringbuilder兩者的區(qū)別
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/4957.html
您可能感興趣的文章
- 01-10C#通過重寫Panel改變邊框顏色與寬度的方法
- 01-10C#實現(xiàn)實體類與字符串互相轉換的方法
- 01-10String.Format大全(C# Java)
- 01-10C#實現(xiàn)子窗體與父窗體通信方法實例總結
- 01-10時間戳與時間相互轉換(php .net精確到毫秒)
- 01-10基于C#實現(xiàn)簡單離線注冊碼生成與驗證
- 01-10C#開發(fā)中的垃圾回收機制簡析
- 01-10C#編程實現(xiàn)對象與JSON串互相轉換實例分析
- 01-10C#多線程編程之使用ReaderWriterLock類實現(xiàn)多用戶讀與單用戶寫同步
- 01-10輕松學習C#的裝箱與拆箱


閱讀排行
本欄相關
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10C#中split用法實例總結
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10使用C語言求解撲克牌的順子及n個骰子