package com.nio.bufferDemo;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.IntBuffer;
import java.nio.LongBuffer;
/**
* @ClassName
* @Description
* @Author qiangsw
* @date 2021/3/12 21:52
* @Version 1.0
* https://www.processon.com/diagraming/604b73cef346fb78ada7d18d
* 代码参考张龙老师视频,详情请b站搜索
*/
public class BufferDemo1 {
/**
* mark
* capacty : ByteBuffer 长度,定义后大小不会改变
* limit 写入数据的长度
* position 下个读取位置
* mark <= position <= limit <= capacity
* @param args
*/
public static void main(String[] args) {
IntBuffer intBuffer = IntBuffer.allocate(10);
System.out.println(intBuffer.position()+","+intBuffer.limit()+","+intBuffer.capacity());
intBuffer.put(1);
intBuffer.put(2);
System.out.println(intBuffer.position()+","+intBuffer.limit()+","+intBuffer.capacity());
/**
* 翻转
* limit = position
* position = 0
*/
intBuffer.flip();
System.out.println(intBuffer.position()+","+intBuffer.limit()+","+intBuffer.capacity());
while (intBuffer.hasRemaining()){
System.out.println(intBuffer.get());
}
intBuffer.flip();
System.out.println(intBuffer.position()+","+intBuffer.limit()+","+intBuffer.capacity());
/**
* 清空
* limit = capacty
* position = 0
*/
intBuffer.clear();
System.out.println(intBuffer.position()+","+intBuffer.limit()+","+intBuffer.capacity());
}
/**
*
*/
public void byteBufferDifind(){
IntBuffer.allocate(10);
LongBuffer.allocate(10);
CharBuffer.allocate(10);
ByteBuffer.allocate(10);
}
}