先來看看這個類都和哪些類和接口有關係,看到StringReader主要是繼承了抽象類Reader,咱們知道Writer和Reader類是設計來處理基於字符串的輸入和輸出的,以下圖併發
該類有4個變量屬性,一個字符串和其相應的特性長度,next,mark。函數
該方法就一個構造函數,幹了什麼,一眼也明白了設計
這個方法就用來判斷str字符串是否爲空對象
而後再看看read方法,這裏加了一個鎖,lock其實在Reader裏面就是當前對象自己,而後next會遞增,blog
而後看看skip方法,這裏會先判斷若是next已經不小於length,就返回0,這裏還會ns和字符串可移動長度比較,只是後面的是考慮負數的狀況,退回的長度不能超過next,而後返回實際移動的距離。繼承
ready方法就是看str數據是否已經不爲空接口
還有close方法也很好理解,到這想一想那些方法裏的 ensureOpen仍是有用的,畢竟併發清狀況下執行了,沒有這個方法就會錯亂啦。ip
而後寫一個demo字符串