![](https://img.kancloud.cn/b4/b2/b4b2b9c59c066154dfd0a8159444a407_647x331.png)
### ByteBufAPI的优点
* 它可以被用户自定义的缓冲区类型扩展;
* 通过内置的复合缓冲区类型实现了透明的零拷贝;
* 容量可以按需增长\(类似于JDK的StringBuilder\);
* 在读和写这两种模式之间切换不需要调用ByteBuffer的flip\(\)方法;
* 读和写使用了不同的索引;
* 支持方法的链式调用;
* 支持引用计数;
* 支持池化;
### 工作机制
ByteBuf维护了两个不同的索引:一个用于读取,一个用于写入。当你从ByteBuf读取时,它的readerIndex将会被递增已经被读取的字节数。同样当你写入ByteBuf时,它的writerIndex也会被递增
![](https://img.kancloud.cn/11/d8/11d8af843b58548f39f868f17f760bab_461x156.png)
ByteBuf使用模式
1. 堆缓冲区
2. 直接缓冲区
3. 复合缓冲区
- 概述
- Netty&Tomcat的区别
- NIO基础知识
- 同步阻塞式IO
- 伪异步IO编程
- 同步IO之IO-multiplexing
- NIO基础概念
- NIO服务流程
- Netty基础知识
- NettyServer开发示例
- 零拷贝
- TCP粘包和拆包问题
- LineBasedFrameDecoder&StringDecoder
- 应用层消息处理方式
- ByteBuf
- ChannelHandler
- Netty核心组件
- Channel接口
- ChannelHandler
- ChannelInboundHandlerAdapter
- SimpleChannelInboundHandler
- SimpleChannelInboundHandler && ChannelInboundHandler
- ChannelInitializer
- EventLoop接口
- ChannelFuture接口
- ChannelPipeline接口
- 序列化
- JAVA序列化