美文网首页
《NIO与Socket编程技术指南》读书笔记

《NIO与Socket编程技术指南》读书笔记

作者: 云师兄 | 来源:发表于2018-10-21 22:39 被阅读605次

缓冲区

Buffer类的使用

传统的IO流常常把字节流中的数据放入byte或者char数组中,由于java对array数组操作的api较少,所以需要自己使用原始的处理方式(使用length属性等或者下标)处理数据,比较麻烦。这个问题可以使用Buffer缓冲区解决,Buffer类有多个子类:


Buffer子类

使用这些子类表示缓冲区保存多种类型的数据,而不只是byte和char。

要注意的是,Buffer和它的子类都是抽象类,不能直接new出实例,需要将上面7种类型的数组包装(wrap)进缓冲区中,来构建不同数据结构的缓冲区。使用示例如下:

byte[] byteArray = new byte[]{1,2,3,4};
ByteBuffer byteBuffer = ByteBuffer.wrap(byteArray);

wrap方法实现如下:

public static ByteBuffer wrap(byte[] array,
                                    int offset, int length)
    {
        try {
            return new HeapByteBuffer(array, offset, length);
        } catch (IllegalArgumentException x) {
            throw new IndexOutOfBoundsException();
        }
    }

上面的HeapByteBuffer就是Buffer类的实现类,所以wrap的过程也是实例化对象的过程。
从ByteBuffer类内部:


源码

wrap传入的数组最后保存在了ByteBuffer实例内部,所以Buffer类实际上还是对数组进行封装而已。

包装数据与获得容量

相关文章

  • 《NIO与Socket编程技术指南》读书笔记

    缓冲区 Buffer类的使用 传统的IO流常常把字节流中的数据放入byte或者char数组中,由于java对arr...

  • Socket 编程之 NIO

    本文介绍基于 NIO 实现 Socket 编程的方法及问题。 目录 NIO 简介 NIO Socket 代码示例 ...

  • SOCKET与NIO

    1. 套接字(SOCKET)相关概念 网络套接字的基本操作:创建(socket)、命名(bind)、侦听(list...

  • Java原生Nio编程

    原生Nio编程 NIO提供了与传统BIO模型中的Socket和ServerSocket相对应的SocketChan...

  • Java NIO

    # Java NIO # Java NIO属于非阻塞IO,这是与传统IO最本质的区别。传统IO包括socket和文...

  • JavaWeb之三——网络IO和NIO

    TCP状态转换图 影响网络传输的因素 Socket NIO的主要原理与使用 Buffer的工作方式 NIO的文件访...

  • NIO与Socket编程

    听完不用,怕都给忘了,写一写记一记吧(毕竟教材更像是API的简单罗列。 Socket编程 Socket编程其实就是...

  • IO发展

    socket---> bio ---> nio --> aio --> nettyio--------------...

  • nio实现socket

    1、nio实现socket 服务段 客户端

  • Java Network 01 - Socket and IO

    该文只涉及Socket和IO(不含NIO) 复习经典网络结构 Socket Berkeley sockets is...

网友评论

      本文标题:《NIO与Socket编程技术指南》读书笔记

      本文链接:https://www.haomeiwen.com/subject/zqjbzftx.html