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

  • 強大的父類AbstractStringBuilder

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

  • 重要的append方法

  • 其他一些方法的簡單介紹

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

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

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

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

        		

網(wǎng)友評論