zoukankan      html  css  js  c++  java
  • 【学习笔记】Java NIO

    【学习笔记】Java NIO

    NIO                                                                                                                                                                    

    1 Buffer

    1.1 基本属性

    (1)capacity

      这个 Buffer 最多能放多少数据。 capacity 一般在 buffer 被创建的时候指定。

    (2)limit

      在 Buffer 上进行的读写操作都不能越过这个下标。当写数据到 buffer 中时, limit 一般和 capacity 相等,当读数据时, limit 代表 buffer 中有效数据的长度。

    (3)position

      读 / 写操作的当前下标。当使用 buffer 的相对位置进行读 / 写操作时,读 / 写会从这个下标进行,并在操作完成后, buffer 会更新下标的值。

    (4)mark

      一个临时存放的位置下标。调用 mark() 会将 mark 设为当前的 position 的值,以后调用 reset() 会将 position 属性设置为 mark 的值。 mark 的值总是小于等于 position 的值,如果将 position 的值设的比 mark 小,当前的 mark 值会被抛弃掉。

      这些属性总是满足以下条件:0 <= mark <= position <= limit <= capacity

    1.2 基本操作

      limit 和 position 的值除了通过 limit() 和 position() 函数来设置,也可以通过下面这些函数来改变:

    (1)clear()

      把 position 设为 0 ,把 limit 设为 capacity ,一般在把数据写入 Buffer 前调用

    (2)flip()

      把 limit 设为当前 position ,把 position 设为 0 ,一般在从 Buffer 读出数据前调用

    (3)rewind()

      把 position 设为 0 , limit 不变,一般在把数据重写入 Buffer 前调用

  • 相关阅读:
    vue配置跨域
    vue的组件通信
    vue3.0图片循环不出来的解决方案
    具有隐私保护的分布式云数据库中聚合查询的多阶段协议-多级分离查询处理(MSQP)协议
    分布式云数据库
    虚拟网络映射论文
    云技术下的分布式数据库系统
    云环境下的分布式数据库-UDDB
    神经网络
    AlphaGo、AlphaGo zero、Alpha zero
  • 原文地址:https://www.cnblogs.com/onliny/p/2585152.html
Copyright © 2011-2022 走看看