lim

Netty之缓冲区ByteBuf解读(一)

孤街醉人 提交于 2019-12-23 08:29:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> > Netty 在数据传输过程中,会使用缓冲区设计来提高传输效率。虽然,Java 在 NIO 编程中已提供 ByteBuffer 类进行使用,但是在使用过程中,其编码方式相对来说不太友好,也存在一定的不足。所以高性能的 Netty 框架实现了一套更加强大,完善的 ByteBuf,其设计理念也是堪称一绝。 ByteBuffer 分析 在分析 ByteBuf 之前,先简单讲下 ByteBuffer 类的操作。便于更好理解 ByteBuf 。 ByteBuffer 的读写操作共用一个位置指针,读写过程通过以下代码案例分析: // 分配一个缓冲区,并指定大小 ByteBuffer buffer = ByteBuffer.allocate(100); // 设置当前最大缓存区大小限制 buffer.limit(15); System.out.println(String.format("allocate: pos=%s lim=%s cap=%s", buffer.position(), buffer.limit(), buffer.capacity())); String content = "ytao公众号"; // 向缓冲区写入数据 buffer.put(content.getBytes()); System