netty ByteBuf底層各參數

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章