Skip to content

Commit 37867a3

Browse files
committed
增加:ByteBuf内容
1 parent a06086c commit 37867a3

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

netty-learning/ByteBuf.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,27 @@ ByteBuf的可读字节分段存储了尚未读取的字节,我们可以使用r
141141

142142
由于调用clear后,数据并没有被清空,但整个ByteBuf仍然是可写的,这比discardReadBytes轻量的多,
143143
DiscardReadBytes还要回收已读字节空间。
144+
145+
146+
#### 查找操作
147+
在ByteBuf中,有多种可以确定值的索引的方法,最简单的方法是使用ByteBuf的indexOf方法。
148+
较为复杂的查找可以通过ByteBuf的forEachByte方法,forEachByte方法所需的参数是ByteProcessor,
149+
但我们无需去实现ByteProcessor,因为ByteProcessor已经为我们定义好了两个易用的实现。
150+
151+
152+
#### 衍生缓冲区
153+
衍生缓冲区是专门展示ByteBuf内部数据的视图,这种视图常通过以下方法创建:
154+
155+
- duplicate
156+
157+
- slice
158+
159+
- order
160+
161+
- readSlice
162+
163+
这些方法都将以源ByteBuf创建一个新的ByteBuf视图,所以源ByteBuf内部的索引和数据都与视图一样,
164+
但这也意味着修改了视图的内容,也会修改源ByteBuf的内容。如果我们需要一个真实的ByteBuf的副本,
165+
我们应该使用copy方法来创建,copy方法创建的副本拥有独立的内存,不会影响到源ByteBuf。
166+
167+

0 commit comments

Comments
 (0)