上篇文章我們介紹過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)給子類使用的。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26