2 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
String類有不可改變性。每次執(zhí)行字符操作時(shí),都會(huì)創(chuàng)建一個(gè)新的String對(duì)象。
StringBuilder 類解決了對(duì)字符串進(jìn)行重復(fù)修改的過程中創(chuàng)建大量對(duì)象的問題。初始化一個(gè)StringBuilder 之后,它會(huì)自動(dòng)申請(qǐng)一個(gè)默認(rèn)的StringBuilder 容量(默認(rèn)值是16),這個(gè)容量是由Capacity來控制的.并且允許,我們根據(jù)需要來控制Capacity的大小,也可以通過Length來獲取或設(shè)置StringBuilder 的長度.
String 對(duì)象是不可改變的。每次使用 String 類中的方法之一或進(jìn)行運(yùn)算時(shí)(如賦值、拼接等)時(shí),都要在內(nèi)存中創(chuàng)建一個(gè)新的字符串對(duì)象,這就需要為該新對(duì)象分配新的空間。而 StringBuilder 則不會(huì),在需要對(duì)字符串執(zhí)行重復(fù)修改的情況下,與創(chuàng)建新的 String 對(duì)象相關(guān)的系統(tǒng)開銷可能會(huì)非常昂貴。如果要修改字符串而不創(chuàng)建新的對(duì)象,則可以使用 System.Text.StringBuilder 類;例如,當(dāng)在一個(gè)循環(huán)中將許多字符串連接在一起時(shí),使用 StringBuilder 類可以提升性能。

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
String 對(duì)象每次連接時(shí) 會(huì)在內(nèi)存中新生成一個(gè)對(duì)象 比較浪費(fèi) 空間
而使用StringBuilder 則是在后面連接字符串
百度一下 StringBuilder與String 的區(qū)別吧。
- 2 回答
- 0 關(guān)注
- 1826 瀏覽
添加回答
舉報(bào)