抽象类ByteBuffer 

  • ByteBuffer的继承关系

  • 父类

Java NIO 之 ByteBuffer_Buffer

  • 子类

目前,大概有5个实现类

Java NIO 之 ByteBuffer_ Byte_02


  • ByteBuffer 底层,主要依赖?

    顾名思义,从ByteBuffer的名称来看,这个缓冲区针对的是字节类型的缓冲区,

    从源码中,也可以查询到, 就是字节数组


Java NIO 之 ByteBuffer_ Byte_03


  • ByteBuffer的主要api

我这里仅仅分享一下,getput,因为这两个方法用到的最多了。

  • put 操作

Java NIO 之 ByteBuffer_ Byte_04


目前有5个实现类,我们可以依次查看,到底如何实现的

DirectByteBuffer.java


Java NIO 之 ByteBuffer_java_05


DirectByteBufferR.java

Java NIO 之 ByteBuffer_ Byte_06


HeapByteBuffer.java

Java NIO 之 ByteBuffer_ Byte_07


HeapByteBufferR.java

Java NIO 之 ByteBuffer_ Byte_08


  • get操作

    get操作,目前有两种实现思路,如下所示

    HeapByteBuffer.java

Java NIO 之 ByteBuffer_Buffer_09


DirectByteBuffer.java

Java NIO 之 ByteBuffer_ Byte_10


  • 总结:

    其实,当我看到这些的时候,很开心,印证了自己的猜想,突然意识到,JavaNIOBuffer,也是对数组的封装;那么按照类似的思路,我们也可以慢慢的制定属于我们自己的框架。感觉有些事件一下子相同了。心里有底气了。

    很明显提供了一些思路,当我们在开发自己的框架时,如果有场景需要缓存的话,也可以这样做。

 

 

其他Buffer的实现类,也类似,目前就不在一一看了。

//不知道为什么JDK里的Buffer源码里,会有很多空白行,感觉格式排版有问题吧