上篇文章我們介紹過String這個(gè)常用類,知道了該類的內(nèi)部其實(shí)是用的一個(gè)char數(shù)組表示一個(gè)字符串對(duì)象的,只是該字符數(shù)組被final修飾,一旦初始化就不能修改,但是對(duì)于經(jīng)常做字符串修改操作的情況下,String類就需要不斷創(chuàng)建新對(duì)象,性能極低。StringBuilder內(nèi)部也是封裝的一個(gè)字符數(shù)組,只不過該數(shù)組非final修飾,可以不斷修改。所以對(duì)于一些經(jīng)常需要修改字符串的情況,我們應(yīng)當(dāng)首選StringBuilder。其實(shí)StringBuilder和StringBuffer內(nèi)部代碼幾乎一樣,只是StringBuffer的所有方法都被關(guān)鍵字synchronized修飾,也就是說(shuō)它是線程安全的,但是線程安全是需要付出性能代價(jià)的,所以在實(shí)際使用中,適情況選擇。本篇主要介紹StringBuilder,以下是本篇主要內(nèi)容:

  • 強(qiáng)大的父類AbstractStringBuilder

  • 多重載的構(gòu)造函數(shù)

  • 重要的append方法

  • 其他一些方法的簡(jiǎn)單介紹

一、強(qiáng)大的父類AbstractStringBuilder
     StringBuilder的大部分方法中都會(huì)調(diào)用父類方法或?qū)傩裕?足以見得該父類對(duì)其的影響還是很大的,所以我們將從頭至尾簡(jiǎn)單介紹下它的父類AbstractStringBuilder。該類中只有兩個(gè)屬性:

//The value is used for character storage.char[] value;
//The count is the number of characters used.int count;

value屬性表示的是一個(gè)字符數(shù)組,該數(shù)組的作用和String中的字符數(shù)組的作用是一樣的,只是此value數(shù)組并沒有被final修飾,也就是說(shuō)該數(shù)組內(nèi)部的值是可以動(dòng)態(tài)修改的,這也是StringBuilder存在的意義。count屬性表示的不是value數(shù)組的長(zhǎng)度,它代表的是value數(shù)組中實(shí)際上存放的字符數(shù)目,例如:value長(zhǎng)度為10,我存放8個(gè)字符,剩下位置為空,此時(shí)count的值就為8,而value.length()為10。

兩個(gè)構(gòu)造方法都不是public,他們都是被設(shè)計(jì)出來(lái)給子類使用的。

        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式