- 介绍duplicate、slice方法
- 给demo程序验证
slice方法
slice的字面意思是切片,这里就是分割ByteBuffer。
主要功能是:创建一个从原始ByteBuffer的当前位置(position)开始的新ByteBuffer,并且其容量是原始ByteBuffer的剩余可消费元素数量( limit-position)。这个新ByteBuffer与原始ByteBuffer共享一段数据元素子序列,对原始ByteBuffer内容的修改会影响到新ByteBuffer,反之亦然。两个ByteBuffer的position,limit,mark值将会是独立。新ByteBuffer的position是0,capacity和limit是原始ByteBuffer的remaining字节数,mark值是undefined。slice分割出来的ByteBuffer也会继承readonly和isdirect属性。
ByteBuffer#slice的源码如下:
HeapByteBuffer:
public ByteBuffer