1.創建buffer:
ByteBuf buffer = Unpooled.buffer(10);//buffer中包含一個數組 , 是一個byte[10]
2.三個區域
通過 readerIndex和 writerIndex 和 capacity, 將buffer分成三個區域。
3.各參數含義
0--readerIndex:已經讀取的區域;
readerIndex--writerIndex :可讀的區域;
writerIndex -- capacity:可寫的區域
4.代碼解析
ByteBuf buffer = Unpooled.buffer(10);//(1) System.out.println("capacity1=" + buffer.capacity());//capacity1=10 (2) for(int i = 0; i < buffer.capacity(); i++) { buffer.writeByte(i);//將數據寫入buffer 0,1,2,3,4,5,6,7,8,9 (3) } System.out.println("capacity2=" + buffer.capacity());//capacity2=10 (4) for(int i = 0; i < buffer.capacity(); i++) { System.out.println(buffer.readByte());//將數據順序讀出 0,1,2,3,4,5,6,7,8,9 (5) }
(1):創建容量爲10的ByteBuf; 參數結果:capacity=10;readerIndex=0;writerIndex=0
(2): 參數結果:capacity=10;readerIndex=0;writerIndex=0
(3):參數結果:capacity=10;readerIndex=0;writerIndex每循環一次加1,最終writerIndex=10
(4):參數結果:capacity=10;readerIndex=0;writerIndex=10
(5):參數結果:capacity=10;readerIndex每循環一次加1,最終readerIndex=10;writerIndex=10