zoukankan      html  css  js  c++  java
  • Nio再学习之NIO的buffer缓冲区

    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都是抽象类型。

  • 相关阅读:
    【转】做好测试计划和测试用例工作的关键
    【转】RESTful Web Services初探
    最快排序和搜索算法的最简代码实现_转
    排序算法
    libevent简述
    linux异步IO--aio
    长志气戒傲气 必须时刻保持冷静
    LACP-链路聚合
    AM335x移植linux内核_转
    4种用于构建嵌入式linux系统的工具_转
  • 原文地址:https://www.cnblogs.com/lonecloud/p/9440432.html
Copyright © 2011-2022 走看看