美文网首页
netty之Unpooled类

netty之Unpooled类

作者: engineer_tang | 来源:发表于2023-08-25 13:40 被阅读0次

通过分配新空间或包装或复制现有字节数组、字节缓冲区和字符串来创建新的ByteBuf。

使用静态导入
此类旨在与Java 5静态导入语句一起使用:

  import static io.netty.buffer.Unpooled.*;
 
  ByteBuf heapBuffer    = buffer(128);
  ByteBuf directBuffer  = directBuffer(256);
  ByteBuf wrappedBuffer = wrappedBuffer(new byte[128], new byte[256]);
  ByteBuf copiedBuffer  = copiedBuffer(ByteBuffer.allocate(128));

分配新缓冲区
提供了三种现成的缓冲器类型。

  • buffer(int) 分配一个新的固定容量堆缓冲区。
  • directBuffer(int) 分配一个新的固定容量直接缓冲区。

创建包装缓冲区
包装缓冲区是一个缓冲区,它是一个或多个现有字节数组和字节缓冲区的视图。原始数组或缓冲区内容的任何更改都将在包装的缓冲区中可见。提供了各种包装器方法,它们的名称都是wrappedBuffer()。如果您想创建一个由多个数组组成的缓冲区,以减少内存副本的数量,您可能需要仔细查看接受varargs的方法。

创建复制的缓冲区
复制的缓冲区是一个或多个现有字节数组、字节缓冲区或字符串的深度复制。与包装缓冲区不同,原始数据和复制缓冲区之间没有共享数据。提供了各种复制方法,它们的名称都是copiedBuffer()。使用此操作将多个缓冲区合并为一个缓冲区也很方便。

1. 方法介绍

1.1 wrappedBuffer(byte[] array)

创建一个新的big-endian缓冲区,用于包装指定的数组。对指定数组内容的修改将对返回的缓冲区可见。

2. UnpooledHeapByteBuf类

Big endian Java堆缓冲区实现。建议使用UnpooledByteBufAllocator.heapBuffer(int, int), Unpooled.buffer(int) 和 Unpooled.wrappedBuffer(byte[]),而不是显式调用构造函数。

相关文章

网友评论

      本文标题:netty之Unpooled类

      本文链接:https://www.haomeiwen.com/subject/eqnvmdtx.html