バッファのNIO(バッファ)を理解します

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/fu_huo_1993/article/details/88224987

 バッファプロフィール

          でNIO バッファ容器ベースの特定のタイプを格納します。巧みバッファのNiO様々なを使用できるようにするには、我々は内のバッファを理解する必要がある三つの重要な属性。

     1. 容量:これが表す要素を含むバッファの数が、不変ではない容量負 
     2. 限界:バッファが表される第一の非読み取り又は書き込み素子指標を、それが負にすることはできません<容量= 
     3 位置:バッファが表される次の要素もよい読み取り又は書き込み素子指標を、それが負であることはできない<=上限

0 <= position <= limit <= capacity

 

第二に、相対および絶対運転操作

     動作に関して:読み取りまたは書き込み操作対向直接読み取ること又は要素番号を書き込む記載しますが修正さのバッファを位置 、値など BUFFER.GET():
     絶対操作:インデックスから直接動作し、変更されませんバッファ位置の 値、など BUFFER.GET(インデックス)。
     すなわち:インデックスに基づいて動作するように指示する、さもなければ操作が相対的、絶対的です。

第三に、この記事では、バッファの方法を使用しました

    buffer.put(データ)    ===>データがバッファに書き込まれる BUFFER.GET()           ===>バッファからデータを取得    BUFFER.GET(インデックス)   インデックスで取得されたバッファに、===>絶対動作データはposition`の`の値は変更しないであろう buffer.flip()         ===>リードバッファ動作に書き込み動作変換 buffer.clear()を       書き込みバッファに読み出し動作から変換を===>操作、 `注:`バッファ内のデータは削除されることはありません、この時間は、ちょうど位置、リミットの値を変更し、マーク
    
   
       
      

バッファの動作の第四に、具体的な例


 

各ステップ位置、限界、及び上記1つの2 3 4容量の変動が詳細図中-1 4つの流通

図1に示すように、新たなIntBuffer割り当てる

2にIntBuffer書き込みデータ

データがバッファに書き込まれ、次の書き込みまたは読み取り不能の制限として、 `position`、written`位置<= limit`の値を変更要素のインデックス。

図3は、読み出しモードに変換

 
4、データ収集

 
:即ち
      1、容量` capcaityは `常に変更することができません。
      図2に示すように、データの読み出しまたは書き込み`変更された位置値of`を、`が、変更しない限界値and` `位置<=リミット '
      読み出しモードへの書き込みモードがcall`する。3)(フリップ `方法
      。4、`制限は `常に第1のバッファ要素を指し示すインデックスを読み取りまたは書き込むことができません

おすすめ

転載: blog.csdn.net/fu_huo_1993/article/details/88224987