ByteBuffer 是java nio 和aio 编程所必须掌握的一个数据结构,也是掌握tio 所必须要学会的基础知 识。
我们可以把bytebuffer 理解成如下几个属性组成的一个数据结构 1、byte[] bytes: 用来存储数据 2、int capacity: 用来表示bytes 的容量,那么可以想像capacity 就等于bytes.size(),此值在初 始化bytes 后,是不可变的。 3、int limit: 用来表示bytes 实际装了多少数据,可以容易想像得到limit <= capacity,此值是可 灵活变动的 4、int position: 用来表示在哪个位置开始往bytes 写数据或是读数据,此值是可灵活变动的
public static void main(String[] args) {
ByteBuffer byteBuffer = ByteBuffer.allocate(6);
byteBuffer.put((byte) 5);
// 设置position到0的位置,这样读数据时就从这个位置开始读
byteBuffer.position(0);
// 设置limit为1,表示当前byteBuffer的有效长度是1
byteBuffer.limit(1);
byte bs = byteBuffer.get();
System.out.println(byteBuffer);
}