ByteBuffer中属性及其操作
来源:互联网 发布:dota狐狸妈黑历史 知乎 编辑:程序博客网 时间:2024/06/06 00:16
继承自Buffer,用于存储基本类型数据的容器
capacity(容量),缓冲区容量,不能更改
postion(位置),下一个要读取或写入的元素索引
limit(限制),第一个不能被读取或写入的元素索引
mark(标记),标记索引,调用reset方法重置缓冲区位置到mark索引
标记、位置、限制和容量值遵守以下不变式:
0 <= 标记 <= 位置 <= 限制 <= 容量
常用操作方法
- capacity()
返回缓冲区的容量 - clear()
清空缓冲区,将position设为0,limit设为capacity,丢弃mark的值,一般调用此方法后用来覆盖写入缓冲区 - flip()
将limit设为position,position设为0,丢弃mark的值。一般用在read()方法之后用来从缓冲区读取(get)已经写入的数据 - rewind()
position置0,标记被丢弃,在一系列通道write()和get()操作之前进行 - limit()
返回limit的值 - limit(int newLimit)
设置限制,如果位置大于限制,position=limit,如果已有标记大于新限制,那么标记被丢弃 - mark()
将当前position设置为标记 - position
返回当前position - position(int newPosition)
设置position,如果已有mark大于position,则丢弃mark - remaining()
返回limit-positi - hasRemaining()
若有介于limit和position之间的元素,则返回true
总结
设置属性时,要遵循不变式,不符合不变式的设置会被丢弃或重置为合理值,学习时对照源码理解会更加深刻
1 0
- ByteBuffer中属性及其操作
- PHP中如何定义类及其成员属性与操作
- 使用ViewBuffer操作ByteBuffer
- ByteBuffer中实现方式
- NIO中ByteBuffer图解
- Java中ByteBuffer
- javaNIO中ByteBuffer用法
- FileChannel 与 ByteBuffer 操作文件
- bytebuffer获得byte[]的操作
- ByteBuffer
- ByteBuffer
- ByteBuffer
- ByteBuffer
- ByteBuffer
- ByteBuffer
- ByteBuffer
- ByteBuffer
- 操作dom中属性
- iOS开发中常见得运行报错
- View的setTag()和getTag()方法
- jQuery动画与特效
- 异步触发器发送短信
- Hust oj 1293 取数(Map)
- ByteBuffer中属性及其操作
- 玩转 System Bar ( StatusBar 和 NavigationBar)
- 今日头条面试(android)
- 审核功能实现
- C++ - PAT - 1060. 爱丁顿数(25)
- 经典代码IOCP(完成端口)的C#.Net实现----解读
- Android应用性能优化之使用SparseArray替代HashMap
- 剑指offer:圆圈中最后剩下的数字(java)
- Java基础--接口和抽象类