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,即返回是否还有未读内容。
来源:CSDN
作者:清源云起
链接:https://blog.csdn.net/weixin_42312908/article/details/103770034