Netty源码深度解析-ByteBuf(1) ByteBuf简介

本文深入探讨了Netty中的ByteBuf结构,包括其容量、标记、读写区域以及各种方法如write、read、slice、duplicate、copy等。此外,还介绍了ByteBuf的创建方式,如通过ByteBufAllocator和包装ByteBuffer、byte[]。文章总结了ByteBuf的主要API和实现类的分类,强调了其在NIO中的重要角色。
摘要由CSDN通过智能技术生成

导读

原创文章,转载请注明出处。

本文源码地址:netty-source-code-analysis

本文所使用的netty版本4.1.6.Final:带注释的netty源码

本文简要地介绍ByteBuf的结构、主要api和创建方法。

1 ByteBuf的结构

每一个ByteBuf都有一个可容纳的字节上限叫capacity。在ByteBuf中通过两个指针readerIndexwriterIndex将整个个ByteBuf划分成3个部分,分别是已丢弃部分可读部分可写部分,示意图如下。

+-------------------+------------------+------------------+
|       已丢弃      |       可读       |      可写        |
|                   |     (CONTENT)    |                  |
+-------------------+------------------+------------------+
|                   |                  |                  |
0      <=      readerIndex   <=   writerIndex    <=    capacity

readerIndexwriterIndexcapacity之间满足简单地数学关系0 <= readerIndex <= writerIndex <= capcity

一个新建的从未进行过读写操作的ByteBufreaderIndexwriterIndex都为0。整个空间都是可写部分。

+---------------------------------------------------------+
|                           可写                          |
|                          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值