可丢弃字节

image.png
可丢弃字节的分段包含了已经被读过的字节。通过调用 discardReadBytes()方法,可以丢 弃它们并回收空间。这个分段的初始大小为 0,存储在 readerIndex 中,会随着 read 操作的 执行而增加(get*操作不会移动 readerIndex)。
缓冲区上调用 discardReadBytes()方法后,可丢弃字节分段中的空间已经变为可写的了。 频繁地调用 discardReadBytes()方法以确保可写分段的最大化,但是请注意,这将极有可能会 导致内存复制,因为可读字节必须被移动到缓冲区的开始位置。建议只在有真正需要的时候 才这样做,例如,当内存非常宝贵的时候。

可读字节

ByteBuf 的可读字节分段存储了实际数据。新分配的、包装的或者复制的缓冲区的默认 的 readerIndex 值为 0。

可写字节

可写字节分段是指一个拥有未定义内容的、写入就绪的内存区域。新分配的缓冲区的 writerIndex 的默认值为 0。任何名称以 write 开头的操作都将从当前的 writerIndex 处开始 写数据,并将它增加已经写入的字节数。
image.png