ByteBuffer中实现方式

来源:互联网 发布:java初创型公司 编辑:程序博客网 时间:2024/05/20 00:50

一、理解类中的mark、position、limit、capacity关系

mark <= position <= limit <= capacity

ByteBuffer buffer = ByteBuffer.allocate(10);  //mark=-1,position=0,limit=capactiy=10

不管是读取(get)还是写入(put)都会使得position加1

1、所以在读取数据的时候要filp(),重新设置limit=position,position=0;mark=-1;

2、如果读取过一次,想重新在读取,必须要rewind(),重新设置position=0;mark=-1;会清除标志

3、写入的时候一定要注意当前position的位置。

原创粉丝点击