2020.12.21
之前被別人問到這個問題,我還真的除了string以外還不知道StringBuffer和StrginBuilder,因此就胡亂猜想了一下,後來查閱資料結果根本使錯的==
,但經查閱後,C# 中好像沒有StringBuffer 類別...,總之,這篇主要筆記一下String 與 StrginBuilder的差別,先講實用結論
為了效率,固定字串採String,動態字串採StrginBuilder
String 類別 每次動態處理資料時會捨棄舊有的記憶體,然後再配置一個新的記憶體給它。也就是每次變動都會實例化一個新的地址,叫耗效能。感覺像是用array存資料,因為長度是不可變的,每次變動就要創造一個新的地方。
StrginBuilder類別:會創造一個緩衝區,然後再配置一個新的記憶體給它。每次變動就會將資料放在緩衝區後面,緩衝區不夠大就會創造一個新的緩衝區。