• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

NIOByteBuffer

武飞扬头像
兜兜转转m
帮助2

  1.  
    // Invariants: mark <= position <= limit <= capacity
  2.  
    private int mark = -1;
  3.  
    private int position = 0;
  4.  
    private int limit;
  5.  
    private int capacity;

从源码中可以看出,ByteBuffer的几个实例变量。我们稍后会详细解析这几个变量的意义。

在我们刚创建ByteBuffer的时候

 ByteBuffer buffer = ByteBuffer.allocate(10);

其几个变量的值为

Position = 0,limit =  Capactiy = 9 .为最大的值-1

学新通

 在写模式下,我们写入a,b,c,d值后。position 是下一个写入位置,limit 等于容量,下图表示写入了 4 个字节后的状态。

学新通

当flip 动作发生后,position 切换为读取位置,limit 切换为读取限制

学新通

 读取 4 个字节后,各个值的状态为  

学新通

 clear 动作发生后,又变为写模式

学新通

compact 方法,是把未读完的部分向前压缩,然后切换至写模式

学新通

好了,到此为止,我们讲了Bytebuffer的基本使用方法。

因此在使用Bytebuffer时候

【第一步】进行写入。

【第二步】通过flip切换读命令

【第三步】通过clear或者compact再次进行写命令。 

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhibheai
系列文章
更多 icon
同类精品
更多 icon
继续加载