1. 缓冲区(Buffer):

介绍

我们知道在BIO(Block IO)中其是使用的流的形式进行读取,可以将数据直接写入或者将数据直接读取到Stream对象中,但是在NIO中所有的数据都是使用的换冲区进行处理的,任何时候访问NIO的数据都是通过缓冲区进行操作的。

实质:

从下面的源码我们可以看到其实这个里面的ByteBuffer其实里面是一个数组,然后提供了一个offset的变量用于对数据进行结构化的访问以及维护读写为位置等信息。

public abstract class ByteBuffer
    extends Buffer
    implements Comparable<ByteBuffer>
{

    // These fields are declared here rather than in Heap-X-Buffer in order to
    // reduce the number of virtual method invocations needed to access these
    // values, which is especially costly when coding small buffers.
    //
    final byte[] hb;                  // Non-null only for heap buffers
    final int offset;
    boolean isReadOnly;  

  

常见的的Buffer:

1. ByteBuffer:面向字节的缓冲区

2. CharBuffer:字符缓冲区

3. ShortBuffer:短整形的缓冲区

4. IntBuffer:整形缓冲区

5. FloatBuffer:浮点型缓冲区

6. LongBuffer:长整形缓冲区

7. DoubleBuffer:双精度浮点型缓冲区

总结:

值得注意的是在Buffer缓冲区中没有BooleanBuffer缓冲区的实现,以上七中缓冲区的Buffer都是抽象类型。

相关文章:

  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2021-04-17
  • 2022-03-05
  • 2022-01-03
  • 2021-06-29
猜你喜欢
  • 2022-12-23
  • 2022-02-25
  • 2022-12-23
  • 2021-12-10
  • 2021-09-06
  • 2018-05-23
相关资源
相似解决方案