当前位置: 首页 > news >正文

小程序 网站建设 app 开发德阳市建设局官方网站安全月

小程序 网站建设 app 开发,德阳市建设局官方网站安全月,网站设计专题页,腾讯云域名购买目录 一、ByteBuf介绍 二、ByteBuf创建 1.池化创建 ByteBufAllocator 2.Unpooled #xff08;非池化#xff09;创建ByteBuf 3.ByteBufUtil 操作ByteBuf 三、读取ByteBuf数据 1.get方法 2.read方法 3.set方法 4.write方法 5.索引管理 6.索引查找 7.索引查找 8.其…目录 一、ByteBuf介绍 二、ByteBuf创建 1.池化创建 ByteBufAllocator 2.Unpooled 非池化创建ByteBuf 3.ByteBufUtil 操作ByteBuf 三、读取ByteBuf数据 1.get方法 2.read方法 3.set方法 4.write方法 5.索引管理  6.索引查找 7.索引查找 8.其他方法 本篇主要介绍ByteBuf的常用操作APINetty性能的卓越表现离不开ByteBuf的巧妙设计它提供了一系列的缓冲区读写方法另外为了方便起见还特定义了ByteBufUtil提供了比较丰富的操作ByteBuf方法。 一、ByteBuf介绍 为了提高性能Netty重新设计了字节缓冲区ByteBuf类似Java Nio的ByteBuffer但工作方式略有区别比后者更加灵活、高效。 ByteBuf有几个重要属性 capacity容量 0缓冲区开始位置 readIndex下一个读位置 writeIndex下一个写位置 一个ByteBuf对象即可像byte数组一样工作又可以像IO字节流一样工作。当前的可读数据区是[readIndex,writeIndex)可写区是[writeIndex,capacity)而[0,readIndex)区间的字节是可废弃数据(Discardable)如下图所示 ------------------------------------------------------- | discardable bytes | readable bytes | writable bytes | | | (CONTENT) | | ------------------------------------------------------- | | | | 0 readerIndex writerIndex capacity基本的操作包括 1.从ByteBuf中读取数据从readerIndex开始向后读取需要的字节数readerIndex随之改变 2.向ByteBuf中写数据从writeIndex开始向后写数据同时writeIndex随之改变 3.删除ByteBuf已读数据从[0,readerIndex)为已读完的数据为了节省空间需要释放内存释放示意图如下 * BEFORE discardReadBytes()** -------------------------------------------------------* | discardable bytes | readable bytes | writable bytes |* -------------------------------------------------------* | | | |* 0 readerIndex writerIndex capacity*** AFTER discardReadBytes()** --------------------------------------------------------* | readable bytes | writable bytes (got more space) |* --------------------------------------------------------* | | |* readerIndex (0) writerIndex (decreased) capacity 4.清空ByteBuf数据不需要清空数据通过移动两个指针readerIndex和writeIndex指向0即可。 * BEFORE clear()** -------------------------------------------------------* | discardable bytes | readable bytes | writable bytes |* -------------------------------------------------------* | | | |* 0 readerIndex writerIndex capacity*** AFTER clear()** ---------------------------------------------------------* | writable bytes (got more space) |* ---------------------------------------------------------* | |* 0 readerIndex writerIndex capacity 二、ByteBuf创建 1.池化创建 ByteBufAllocator 即PooledByteBufAllocator 获取ByteBufAllocator通过以下两种方式获取 //方法1 Channel channel ...; ByteBufAllocator allocator channel.alloc(); //方法2 ChannelHandlerContext ctx ...; ByteBufAllocator allocator2 ctx.alloc(); ByteBufAllocator中创建byteBuf的方法如下 方法名称方法描述 buffer() buffer(int) buffer(int, int) Return a ByteBuf with heap-based or direct data storage heapBuffer() heapBuffer(int) heapBuffer(int, int) Return a ByteBuf with heap-based storage. directBuffer() directBuffer(int) directBuffer(int, int) Return a ByteBuf with direct storage. compositeBuffer() compositeBuffer(int) heapCompositeBuffer() heapCompositeBuffer(int) directCompositeBuffer() directCompositeBuffer(int)        Return a CompositeByteBuf that can be expanded by adding heapbased or direct buffers.  ioBuffer() Return a ByteBuf that will be used for I/O operations on a socket. 2.Unpooled 非池化创建ByteBuf 即UnPooledByteBufAllocator 当未引用 ByteBufAllocator 时上面的方法无法访问到 ByteBuf。对于这个用例 Netty 提供一个实用工具类称为 Unpooled,它提供了静态辅助方法来创建非池化的 ByteBuf 实例,方法如下 方法名称方法描述 buffer() buffer(int) buffer(int, int) Returns an unpooled ByteBuf with heap-based storage directBuffer() directBuffer(int) directBuffer(int, int) Returns an unpooled ByteBuf with direct storage wrappedBuffer() Returns a ByteBuf, which wraps the given data. copiedBuffer() Returns a ByteBuf, which copies the given data 3.ByteBufUtil 操作ByteBuf 三、读取ByteBuf数据 get/read get不会改变读索引read会改变读索引 1.get方法 方法名称方法描述 getBoolean(int) 返回当前索引的 Boolean 值 getByte(int) getUnsignedByte(int) 返回当前索引的(无符号)字节 getMedium(int) getUnsignedMedium(int) 返回当前索引的 (无符号) 24-bit 中间值 getInt(int) getUnsignedInt(int) 返回当前索引的(无符号) 整型 getLong(int) getUnsignedLong(int) 返回当前索引的 (无符号) Long 型 getShort(int) getUnsignedShort(int) 返回当前索引的 (无符号) Short 型 getBytes(int, ...) 字节 2.read方法 方法名称方法描述 readBoolean()   返回当前索引的Boolean值读索引加一 readByte()  readUnsignedByte()  返回当前索引的(无符号)字节读索引加一 readMedium()  readUnsignedMedium()  返回当前索引的 (无符号) 24-bit 中间值读索引加3 readInt()  readUnsignedInt()  返回当前索引的(无符号) 整型读索引加4 readLong()  readUnsignedLong()   返回当前索引的 (无符号) Long 型读索引加8 readShort()  readUnsignedShort()  返回当前索引的 (无符号) Short 型读索引加2 readBytes(int,int, ...) 返回当前位置到length得到一个字节数组读索引加length 3.set方法 方法名称方法描述 setBoolean(int, boolean) 在指定的索引位置设置 Boolean 值 setByte(int, int) 在指定的索引位置设置 byte 值 setMedium(int, int) 在指定的索引位置设置 24-bit 中间 值 setInt(int, int) 在指定的索引位置设置 int 值 setLong(int, long) 在指定的索引位置设置 long 值 setShort(int, int) 在指定的索引位置设置 short 值 4.write方法 方法名称方法描述 writeBoolean(boolean) 在指定的索引位置设置 Boolean 值写索引加一 writeByte(int) 在指定的索引位置设置 byte 值写索引加一 writeMedium(int) 在指定的索引位置设置 24-bit 中间 值写索引加3 writeInt(int) 在指定的索引位置设置 int 值写索引加4 writeLong(long) 在指定的索引位置设置 long 值写索引加8 writeShort(int) 在指定的索引位置设置 short 值写索引加2 writeBytes(int...  在当前索引写入一个Byte数组写索引加数组长度 5.索引管理  方法名称方法描述 markReaderIndex(),  markWriterIndex() 标记读写索引 resetReaderIndex() resetWriterIndex() 读写索引回到mark标记的索引值 readerIndex(int) writerIndex(int)  将读写索引设置到指定位置 clear() 可以同时设置 readerIndex 和 writerIndex 为 0。这不会清除内存中的内容 6.索引查找 方法名称方法描述 for EachByteByteBufProcessor.FIND_NUL 查找byte,返回byte的索引 7.索引查找 方法名称方法描述 duplicate()  slice()  slice(int, int)        readOnly(),        order(ByteOrder)   所有这些都返回一个新的 ByteBuf 实例包括它自己的 reader, writer 和标记索引。然而内部数据存储共享就像在一个 NIO 的 ByteBuffer copy() copy(int, int) 返回的 ByteBuf 有数据的独立副本 8.其他方法 方法名称方法描述 isReadable() 返回是否有字节可读 isWritable() 返回是否可以写 readableBytes() 返回可以读的字节长度 writablesBytes() 返回可以写的字节长度 capacity() 返回byteBuf的容量 maxCapacity() 返回byteBuf可以有的最大容量 hasArray() 如果byteBuf可以直接返回一个数组就返回true (heap buf才会为true) array() hasArray返回true,该方法就会返回一个数组 参考资料 ByteBuf的常用API总结 Netty详解之九ByteBuf介绍
http://www.w-s-a.com/news/608739/

相关文章:

  • 网站开发的软件天猫的网站导航怎么做的
  • 做链接哪个网站好网站建设平台方案设计
  • 资质升级业绩备案在哪个网站做网站建设方案费用预算
  • 做网站找哪个平台好wordpress 3.9 性能
  • 大兴模版网站建设公司企业网站备案案例
  • h5建站是什么wordpress客户端 接口
  • 济南自适应网站建设制作软件下载
  • 望都网站建设抖音广告投放收费标准
  • 网站制作软件排行榜上海市网站建设公司58
  • 什么是网站风格中国工商网企业查询官网
  • 专业建设专题网站wordpress lnmp wamp
  • 环保网站 下载页网站
  • 开源小程序模板江门关键词优化排名
  • 网站开发 知乎房地产型网站建设
  • 买完域名网站怎么设计wordpress 纯代码
  • 公司网站怎么做百度竞价宁波网络公司哪家好
  • 河西网站建设制作微信分销系统多层
  • 网站制作完成后应进入什么阶段石家庄网站建设找哪家好
  • 南通外贸网站推广自在源码网官网
  • 个人网站模板html下载餐饮vi设计案例欣赏
  • 高端网站建设wanghess网站开发售后服务承诺
  • 江西网站建设费用企业网站推广的方法有( )
  • 中国十大网站开发公司企业网站建设的要素有哪些
  • 网站防站做网站吉林
  • 嘉定区网站建设公司企业信息公示查询系统官网
  • 一个具体网站的seo优化产品介绍网站模板下载地址
  • 怎么做网站在网上能搜到你哈尔滨网站建立公司
  • 做家旅游的视频网站上海百度公司总部
  • 微信小程序公司网站怎么制作区块链平台定制开发
  • 网站资质优化ip地址域名解析