导读
原创文章,转载请注明出处。
本文源码地址:netty-source-code-analysis
本文所使用的netty版本4.1.6.Final:带注释的netty源码
本文简要地介绍ByteBuf
的结构、主要api和创建方法。
1 ByteBuf的结构
每一个ByteBuf
都有一个可容纳的字节上限叫capacity
。在ByteBuf
中通过两个指针readerIndex
和writerIndex
将整个个ByteBuf
划分成3个部分,分别是已丢弃部分
、可读部分
和可写部分
,示意图如下。
+-------------------+------------------+------------------+
| 已丢弃 | 可读 | 可写 |
| | (CONTENT) | |
+-------------------+------------------+------------------+
| | | |
0 <= readerIndex <= writerIndex <= capacity
readerIndex
、writerIndex
和capacity
之间满足简单地数学关系0 <= readerIndex <= writerIndex <= capcity
。
一个新建的从未进行过读写操作的ByteBuf
,readerIndex
和writerIndex
都为0。整个空间都是可写部分。
+---------------------------------------------------------+
| 可写 |
|