netty的Zero-copy 与上面我们所提到到 OS 层面上的 Zero-copy 不太一样, <br>Netty的 Zero-coyp 完全是在用户态(Java 层面)的, <br>它的 Zero-copy 的更多的是偏向于 优化数据操作 这样的概念<br>
Netty 提供了 CompositeByteBuf 类, 它可以<font color="#f15a23">将多个 ByteBuf 合并为一个逻辑上的 ByteBuf,</font> 避免了各个 ByteBuf 之间的拷贝.
通过 wrap 操作, 我们可以<font color="#f15a23">将 byte[] 数组、ByteBuf、ByteBuffer等包装成一个 Netty ByteBuf 对象</font>, 进而避免了拷贝操作.
ByteBuf 支持 <font color="#f15a23">slice 操作, 因此可以将 ByteBuf 分解为多个共享同一个存储区域的 ByteBuf,</font> 避免了内存的拷贝.
通过 FileRegion 包装的FileChannel.<font color="#f15a23">tranferTo 实现文件传输, 可以直接将文件缓冲区的数据发送到目标 Channel,</font> 避免了传统通过循环 write 方式导致的内存拷贝问题.