public static void main(final String[] args) {
ByteBuffer byteBuffer = ByteBuffer.allocate(10);
System.out.println("初始位置:" + byteBuffer.position());
System.out.println("初始限度:" + byteBuffer.limit());
System.out.println("初始容量:" + byteBuffer.capacity());
System.out.println();
byteBuffer.put((byte) 6);
byteBuffer.put((byte) 66);
byteBuffer.put((byte) 666);
byteBuffer.put((byte) 6666);
System.out.println("设值后位置:" + byteBuffer.position());
System.out.println("设值后限度:" + byteBuffer.limit());
System.out.println("设值后容量:" + byteBuffer.capacity());
System.out.println();
/**
* flip()函数
* limit 设为当前 position, position 设为 0;
*/
byteBuffer.flip();
System.out.println("flip后位置:" + byteBuffer.position());
System.out.println("flip后限度:" + byteBuffer.limit());
System.out.println("flip后容量:" + byteBuffer.capacity());
System.out.println();
/**
* rewind()函数
* position 设为0,取消所有mark (标记)
*/
byteBuffer.rewind();
System.out.println("rewind后位置:" + byteBuffer.position());
System.out.println("rewind后限度:" + byteBuffer.limit());
System.out.println("rewind后容量:" + byteBuffer.capacity());
System.out.println();
/**
* clear()函数
* position 设为 0, limit 设为capacity,取消所有mark
* 将状态参数恢复到原始值,但buffer内的值并不改变。
*/
byteBuffer.clear();
System.out.println("clear后位置:" + byteBuffer.position());
System.out.println("clear后限度:" + byteBuffer.limit());
System.out.println("clear后容量:" + byteBuffer.capacity());
System.out.println();
byteBuffer.position();// 取出现在的位置
byteBuffer.position(3);// 设置现在的位置
byteBuffer.limit();// 取出现在的限度
byteBuffer.limit(6);// 设置现在的限度
byteBuffer.capacity();// 取出现在的容量
byteBuffer.capacity(1);// 容量在初始时设定,无法在修改;
}
========================================== End ========================================