Netty 的 ByteBuf.copy() 和 ByteBuf.duplicate() 之间的区别



乍一看,它们似乎非常相似。我的理解是copy()创建了基础内容的副本,而duplicate()则没有。这是准确的吗?在什么情况下,您将使用一个与另一种情况?

copy((

返回此缓冲区可读字节的副本。修改返回的缓冲区或此缓冲区的内容根本不会互相影响。

重复((

返回一个缓冲区,该缓冲区共享此缓冲区的整个区域。修改返回的缓冲区的内容或此缓冲区的内容会影响彼此的内容,同时它们保持单独的索引和标记。此方法不会修改此缓冲区的ReaderIndex或WriterInterex。

当您想要Bytebuf对象的完全独立的副本时,您会使用copy((方法。

可以从Bytebuf文档中找到更多信息

最新更新