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

注册网站给谁交钱网站建设与维护中国出版社

注册网站给谁交钱,网站建设与维护中国出版社,网站后台管理系统源码,吴江建设局房产网站文章目录 PreOverview状态变量概述PositionLimitCapacity演示#xff1a; 观察变量 访问方法get() 方法put()方法类型化的 get() 和 put() 方法 缓冲区的使用#xff1a;一个内部循环 Pre 庖丁解牛#xff1a;NIO核心概念与机制详解 01 接下来我们来看下缓冲区内部细节 Ov… 文章目录 PreOverview状态变量概述PositionLimitCapacity演示 观察变量 访问方法get() 方法put()方法类型化的 get() 和 put() 方法 缓冲区的使用一个内部循环 Pre 庖丁解牛NIO核心概念与机制详解 01 接下来我们来看下缓冲区内部细节 Overview 接下来将介绍 NIO 中两个重要的缓冲区组件状态变量和访问方法 (accessor) 状态变量是内部统计机制的关键。每一个读/写操作都会改变缓冲区的状态。通过记录和跟踪这些变化缓冲区就可能够内部地管理自己的资源。 在从通道读取数据时数据被放入到缓冲区。在有些情况下可以将这个缓冲区直接写入另一个通道但是在一般情况下您还需要 查看数据。这是使用 访问方法 get() 来完成的。同样如果要将原始数据放入缓冲区中就要使用访问方法 put()。 状态变量 概述 可以用三个值指定缓冲区在任意时刻的状态 positionlimitcapacity 这三个变量一起可以跟踪缓冲区的状态和它所包含的数据。 我们将详细分析每一个变量还要介绍它们如何适应典型的读/写(输入/输出)进程。在这个例子中我们假定要将数据从一个输入通道拷贝到一个输出通道。 Position 可以回想一下缓冲区实际上就是美化了的数组。在从通道读取时将所读取的数据放到底层的数组中。 position 变量跟踪已经写了多少数据。更准确地说它指定了下一个字节将放到数组的哪一个元素中。 因此如果从通道中读三个字节到缓冲区中那么缓冲区的 position 将会设置为3指向数组中第四个元素。 同样在写入通道时是从缓冲区中获取数据。 position 值跟踪从缓冲区中获取了多少数据。更准确地说它指定下一个字节来自数组的哪一个元素。因此如果从缓冲区写了5个字节到通道中那么缓冲区的 position 将被设置为5指向数组的第六个元素。 Limit limit 变量表明还有多少数据需要取出(在从缓冲区写入通道时)或者还有多少空间可以放入数据(在从通道读入缓冲区时)。 position 总是小于或者等于 limit。 Capacity 缓冲区的 capacity 表明可以储存在缓冲区中的最大数据容量。实际上它指定了底层数组的大小 ― 或者至少是指定了准许我们使用的底层数组的容量。 limit 决不能大于 capacity。 演示 观察变量 我们首先观察一个新创建的缓冲区。 我们假设这个缓冲区的 总容量 为8个字节。 图给你画好了戳这里 访问方法 到目前为止我们只是使用缓冲区将数据从一个通道转移到另一个通道。然而程序经常需要直接处理数据。例如可能需要将用户数据保存到磁盘。在这种情况下必须将这些数据直接放入缓冲区然后用通道将缓冲区写入磁盘。 或者可能想要从磁盘读取用户数据。在这种情况下要将数据从通道读到缓冲区中然后检查缓冲区中的数据。 get() 方法 ByteBuffer 类中有四个 get() 方法 1byte get(); 2ByteBuffer get( byte dst[] ); 3ByteBuffer get( byte dst[], int offset, int length ); 4byte get( int index );第一个方法获取单个字节。第二和第三个方法将一组字节读到一个数组中。第四个方法从缓冲区中的特定位置获取字节。 那些返回 ByteBuffer 的方法只是返回调用它们的缓冲区的 this 值。 此外我们认为前三个 get() 方法是相对的而最后一个方法是绝对的。 相对 意味着 get() 操作服从 limit 和 position 值 ― 更明确地说字节是从当前 position 读取的而 position 在 get 之后会增加。 另一方面一个 绝对 方法会忽略 limit 和 position 值也不会影响它们。事实上它完全绕过了缓冲区的统计方法。 上面列出的方法对应于 ByteBuffer 类。其他类有等价的 get() 方法这些方法除了不是处理字节外其它方面是是完全一样的它们处理的是与该缓冲区类相适应的类型。 put()方法 ByteBuffer 类中有五个 put() 方法 1ByteBuffer put( byte b ); 2ByteBuffer put( byte src[] ); 3ByteBuffer put( byte src[], int offset, int length ); 4ByteBuffer put( ByteBuffer src ); 5ByteBuffer put( int index, byte b );第一个方法 写入put 单个字节。第二和第三个方法写入来自一个数组的一组字节。第四个方法将数据从一个给定的源 ByteBuffer 写入这个 ByteBuffer。第五个方法将字节写入缓冲区中特定的 位置 。那些返回 ByteBuffer 的方法只是返回调用它们的缓冲区的 this 值。 与 get() 方法一样我们将把 put() 方法划分为 相对 或者 绝对 的。前四个方法是相对的而第五个方法是绝对的。 上面显示的方法对应于 ByteBuffer 类。其他类有等价的 put() 方法这些方法除了不是处理字节之外其它方面是完全一样的。它们处理的是与该缓冲区类相适应的类型。 类型化的 get() 和 put() 方法 除了前些小节中描述的 get() 和 put() 方法 ByteBuffer 还有用于读写不同类型的值的其他方法。 如下所示 getByte() getChar() getShort() getInt() getLong() getFloat() getDouble() putByte() putChar() putShort() putInt() putLong() putFloat() putDouble()事实上这其中的每个方法都有两种类型 ― 一种是相对的另一种是绝对的。它们对于读取格式化的二进制数据如图像文件的头部很有用。 举个栗子 public class TypesInByteBuffer {static public void main( String args[] ) throws Exception {ByteBuffer buffer ByteBuffer.allocate( 64 );buffer.putInt( 30 );buffer.putLong( 7000000000000L );buffer.putDouble( Math.PI );buffer.flip();System.out.println( buffer.getInt() );System.out.println( buffer.getLong() );System.out.println( buffer.getDouble() );} }缓冲区的使用一个内部循环 下面的内部循环概括了使用缓冲区将数据从输入通道拷贝到输出通道的过程。 while (true) {buffer.clear();int r fcin.read( buffer );if (r-1) {break;}buffer.flip();fcout.write( buffer ); }read() 和 write() 调用得到了极大的简化因为许多工作细节都由缓冲区完成了。clear() 和 flip() 方法用于让缓冲区在读和写之间切换。
http://www.dnsts.com.cn/news/131850.html

相关文章:

  • 网站优化和提升网站排名怎么做企业网站功能模块介绍
  • 手机网站用什么软件做的好处网站建设在线培训
  • 宜春网站建设联系方式重庆中环建设有限公司网站
  • 网站管理系统后台不能发布文章了自己做网站怎么选架构
  • 没有网站备案可以做诚信认证嘛网站运行维护
  • 网站国际互联网备案号WordPress考勤模板
  • 南京建网站中国室内设计师联盟官网
  • 陕西省住房城乡建设部门户网站手机上写WordPress博文
  • 网站换空间会影响排名吗2022年小学生新闻摘抄十条
  • 摄影作品网站知乎女生学软件工程很难吗
  • 在dw上做网站首页导航栏126企业邮箱注册
  • 保山市城市建设网站青岛网站建设seo
  • 查网站权重汕头网站模板价格
  • 怎么用wordpress建立本地网站巴中住房建设部网站
  • 南昌模板建站定制网站网站建设资讯平台
  • 简述网站建设与维护微信公众号手机上传wordpress
  • 网站开发英文怎么说网站建设报告怎么写
  • 嘉兴公司网站制作做外贸需要建英文网站吗
  • 制作外贸型网站抖音宣传推广方案
  • 部署wordpress站点分享型网站
  • 新手做淘宝哪个网站比较好生产企业网站有哪些
  • 哪个女装网站做的好做网站如何不被忽悠
  • 网站开发中如何设计验证码设计公司英文
  • 深圳php网站开发微网站 开发
  • 手机应用下载网站源码wordpress评论者头像
  • 福建省建设监理网官方网站com域名免费
  • 网站seo优化有哪些方面3d做网站
  • 什么是网站栏目标题做外贸seo优化的公司
  • 睢宁县凌城做网站的搜狗seo刷排名软件
  • 网站设计主题有哪些国外做行程的网站