美文网首页
初识ByteBuffer入门

初识ByteBuffer入门

作者: 6a63f3f29c6c | 来源:发表于2020-04-01 15:25 被阅读0次

前言

ByteBuffer是nio/aio编程所必须掌握的一个数据结构,也是掌握tio所必须要学会的基础只是。
设想,如果你不懂Map,List,Set,那么你在编程领域将会一事无成,同样的道理,如果你不懂ByteBuffer,你无法在nio/aio编程领域立足。

初识ByteBuffer

  • byte[] bytes : 用来存储数据
  • int capacity:用来表示bytes的容量,那么可以想象capacity就等于bytes.siez(),此值在初始化bytes后,是不可变的。
  • int limit:用来表示bytes时机装了多少数据,可以容易现象到limit<=capacity,此值是可变动的。
  • int position:用那表示在哪个位置开始往bytes写数据或读数据,此值是可灵活变动的。


    image.png

创建ByteByffer

image.png
image.png

往ByteBuffer中写入数据,观察limit 和 poisuruib的变化

使用put方法即可添加数据到byteBuffer中


image.png

从ButeBuffer中读取数据

对于刚刚写好的bytebuffer,我们读取数据的时候,需要先设置一个position和limit,否则读的位置则不对

        //创建一个 capacity 为6 的ByteBuffer
        ByteBuffer allocate = ByteBuffer.allocate(6);
        allocate.put((byte)1);
        System.out.println(allocate);
        //设置limit为1,那么表示buffter的有效数据长度是1
        allocate.limit(1);
        //设置position到0位置,这样都诗句的时候就从这个位置开始读
        allocate.position(0);
        System.out.println(allocate);
        //get获取一个字节,position 的位置也会随着读取而改变
        byte b = allocate.get();
        System.out.println(allocate);
image.png

文章参考:https://www.t-io.org/doc/tio/83?pageNumber=1

相关文章

  • 初识ByteBuffer入门

    前言 ByteBuffer是nio/aio编程所必须掌握的一个数据结构,也是掌握tio所必须要学会的基础只是。设想...

  • java nio

    ByteBuffer 写文件 ByteBuffer读中文文件 ByteBuffer读取普通文件

  • MyBatis-从查询昨天的数据说起

    前段时间写了《RabbitMQ入门》系列RabbitMQ入门-初识RabbitMQ RabbitMQ入门-从Hel...

  • 11.15

    Java 中怎么创建 ByteBuffer?1.1 使用allocate()静态方法ByteBuffer buff...

  • Netty内存分配原理

    1 java NIO的ByteBuffer Bytebuffer分为两种:HeapByteBuffer(堆内内存)...

  • 前端入门系列

    前端HTML & CSS 基础入门(1)初识 前端HTML & CSS 基础入门(2)段落及文本 前端HTML &...

  • ByteBuffer

    缓冲区(Buffer)缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临...

  • ByteBuffer

    测试代码

  • Netty(二) ByteBuf

    Netty ByteBuf 是NIO中ByteBuffer的封装,相比JDK ByteBuffer更加易用; 为读...

  • NIO DirectByteBuffer 内存泄露的测试

    写NIO程序经常使用ByteBuffer来读取或者写入数据,那么使用ByteBuffer.allocate(...

网友评论

      本文标题:初识ByteBuffer入门

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