Java NIO 之 ByteBuffer

抽象類ByteBuffer 

  • ByteBuffer的繼承關係

  • 父類

wKioL1nPYkbgSwxhAAAhdmcBu9I780.png

  • 子類

目前,大概有5個實現類

wKiom1nPYomwGl3gAACNp7Jz_s8471.png


  • ByteBuffer 底層,主要依賴?

    顧名思義,從ByteBuffer的名稱來看,這個緩衝區針對的是字節類型的緩衝區,

    從源碼中,也可以查詢到, 就是字節數組


wKioL1nPYkbS8sRPAAB-FwMVdRg803.png


  • ByteBuffer的主要api

我這裏僅僅分享一下,getput,因爲這兩個方法用到的最多了。

  • put 操作

wKioL1nPYkax25puAACbmIGoUvc735.png


目前有5個實現類,我們可以依次查看,到底如何實現的

DirectByteBuffer.java


wKiom1nPYonCizBoAADdQpsJhd4107.png


DirectByteBufferR.java

wKioL1nPYkbQuHleAABnPuhe2ME161.png


HeapByteBuffer.java

wKiom1nPYoqBYa_-AAEgyJzSbRc276.png


HeapByteBufferR.java

wKioL1nPYkexNru8AAB3F6CytHI595.png


  • get操作

    get操作,目前有兩種實現思路,如下所示

    HeapByteBuffer.java

wKiom1nPYorR5IAVAACJTUKe1w4294.png


DirectByteBuffer.java

wKiom1nPYoqxUQ0xAAB0-jsj2nY112.png


  • 總結:

    其實,當我看到這些的時候,很開心,印證了自己的猜想,突然意識到,JavaNIOBuffer,也是對數組的封裝;那麼按照類似的思路,我們也可以慢慢的制定屬於我們自己的框架。感覺有些事件一下子相同了。心裏有底氣了。

    很明顯提供了一些思路,當我們在開發自己的框架時,如果有場景需要緩存的話,也可以這樣做。

 

 

其他Buffer的實現類,也類似,目前就不在一一看了。

//不知道爲什麼JDK裏的Buffer源碼裏,會有很多空白行,感覺格式排版有問題吧


















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章