上篇文章我們介紹過String這個常用類,知道了該類的內(nèi)部其實是用的一個char數(shù)組表示一個字符串對象的,只是該字符數(shù)組被final修飾,一旦初始化就不能修改,但是對于經(jīng)常做字符串修改操作的情況下,String類就需要不斷創(chuàng)建新對象,性能極低。StringBuilder內(nèi)部也是封裝的一個字符數(shù)組,只不過該數(shù)組非final修飾,可以不斷修改。所以對于一些經(jīng)常需要修改字符串的情況,我們應當首選StringBuilder。其實StringBuilder和StringBuffer內(nèi)部代碼幾乎一樣,只是StringBuffer的所有方法都被關鍵字synchronized修飾,也就是說它是線程安全的,但是線程安全是需要付出性能代價的,所以在實際使用中,適情況選擇。本篇主要介紹StringBuilder,以下是本篇主要內(nèi)容:
強大的父類AbstractStringBuilder
多重載的構造函數(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。
兩個構造方法都不是public,他們都是被設計出來給子類使用的。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26
