Java新NIO中的ByteBuffer

1. ByteBuffer中的参数position、limit、capacity、mark含义:

  • position:表示当前指针的位置(下一个要操作的数据元素的位置)
  • limit:表示当前数组最大的使用量,即有效位置的EOF位置(缓冲区数组中不可操作的下一个元素的位置,limit<=capacity)
  • capacity:表示缓冲区最大容量(缓冲区数据的总长度)
  • mark:用于记录当前position的前一个位置或者默认是-1

2. ByteBuffer中常用方法含义:

  • reset():把position设置为mark的值,相当于之前做过一个标记,现在回退到之前标记的地方。
  • clear():将参数设置为position=0,limit=capacity,mark=-1,类似于初始化,但并不影响底层byte数组的内容(注意:clear只是把指针移到位置0,并没有真正清空数据)。
  • flip():将参数设置为limit=position,position=0,mark=-1,翻转,即将未翻转之前0到position之间的数据放置到翻转之后的position(即0)到limit之间的这块区域,翻转将缓冲区的状态由存数据变为准备取数据(注意:将当前位置设置为EOF,指针位置指向0)。
  • rewind():将参数设置为position=0,mark=-1,limit的值不变(注意:指针指向0)。
  • remaining():return limit - position,即返回limit和position之间的相对位置差。
  • hasRemaining():return position < limit,即返回是否还有未读内容。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值