繼承AbstractStringBuffer,我們有了前面的基礎贪薪,后面再來看StringBuffer的時候其實很容易的。這篇文章和博主的第三篇關(guān)聯(lián)度較大,最好先看一下第三篇。
1.
上來一個transient關(guān)鍵字修飾的變量,第一次見己单,博主查了一下唉窃,這個關(guān)鍵字是在序列化的時候,起作用的纹笼,要想用這個關(guān)鍵字纹份,必須先實現(xiàn)Serilizable接口,這個關(guān)鍵字的作用是廷痘,在序列化的時候蔓涧,被這個關(guān)鍵字修飾的屬性不會被序列化,這個關(guān)鍵字只能修飾屬性笋额,不能修飾方法等別的東西元暴,主要是有時候類中可能會涉及到一些敏感的信息比如說密碼之類的東西,在序列化的時候不希望兄猩,被序列化進去茉盏,就打上這個關(guān)鍵字,
2.
四個構(gòu)造方法枢冤,修飾父類AbstaractStringBuilder的讀者鸠姨,就不多說了
3.
一起來看著幾個方法,很簡單淹真,都是調(diào)用改掉父類的方法讶迁,有一點值得注意的是,這幾個方法核蘸,都是有synchronized方法修飾巍糯,如果不知道synchronized重型鎖,博主后面會轉(zhuǎn)載一篇文章做詳細的介紹客扎,但是這里你要知道這里這些方法鳞贷,都是經(jīng)過這個關(guān)鍵字修飾的,就是一個目的保證線程安全虐唠,被這個關(guān)鍵字修飾的屬性方法搀愧,代碼塊,在執(zhí)行的時候,同一時刻咱筛,只能有一個在執(zhí)行搓幌,其他的都會阻塞。這也就是StringBuffer和StringBuiler的區(qū)別迅箩,一個是線程安全的溉愁, 一個是線程不安全的。
4.
和上面一樣饲趋,方法不多介紹拐揭,就提一下多了一個synchronized關(guān)鍵字修復。這些方法底層都是調(diào)用了AbstactStringBuiler方法奕塑,但是博主有一點很納悶的是堂污,其中有幾個方法沒有加上synchronized 關(guān)鍵,如果有人知道的話留言龄砰,博主會立刻修改盟猖。
5.
重寫了toString方法,返回toStringCache的內(nèi)容换棚。
7.
兩個讀寫方法式镐,需要注意寫是線程安全的,讀是隨時可以讀的固蚤,這兩個是私有化方法娘汞,內(nèi)部并沒有調(diào)用。博主也不清楚為何要寫這兩個方法夕玩。知道的人歡迎留言价说。
PS:哪里不對可以在評論中指出,我都會一個個看的风秤,覺得少東西也可以評論中提出來鳖目,我會做補充。