乍一看,它们似乎非常相似。我的理解是copy()
创建了基础内容的副本,而duplicate()
则没有。这是准确的吗?在什么情况下,您将使用一个与另一种情况?
copy((
返回此缓冲区可读字节的副本。修改返回的缓冲区或此缓冲区的内容根本不会互相影响。
重复((
返回一个缓冲区,该缓冲区共享此缓冲区的整个区域。修改返回的缓冲区的内容或此缓冲区的内容会影响彼此的内容,同时它们保持单独的索引和标记。此方法不会修改此缓冲区的ReaderIndex或WriterInterex。
当您想要Bytebuf对象的完全独立的副本时,您会使用copy((方法。
可以从Bytebuf文档中找到更多信息