一:Buffer概念
可以理解为载体。
操作有如下:
1:存取 get/put
2:填充 put
3:翻转 -----有flip()/Rewind()函数
4:释放 ----clear()
5:压缩-------compact函数
6:标记Mark
标记Mark调用flip/Rewind/clear方法后,会抛弃标记位置;
7:比较
8:批量移动---CharBuffer
二:创建缓存区
三:复制缓冲区
1:直接缓冲区 ByteBuffer
2:视图缓冲区
如果把ByteBuffer转换成其它缓冲区,可以先对“字节排序”,然后再转换,例如:
3:数据元素视图
4:存取无符号数据
5:内存映射缓冲区 MappedByteBuffer
java.nio.Buffer:
mark <= position <= limit <= capacity
capacity:buffer所包含的element数量
limit:buffer中的第一个不能读或者写的位置
position:buffer中下一个读或者写的元素位置
mark:当buffer reset后,position会到mark标记的位置上。reset一个没有标示mark的buffer,会产生异常
flip:设置buffer准备好向out中写出操作,或者从buffer中get数据操作。(设置limit到当前的position,position=0)
clear:设置buffer准备好从in中读取操作,或者向bufer中put数据操作。(设置limit到capacity,position=0)
rewind:设置buffer准备好重读操作。(设置position=0,limit不变,mark=-1)