NIO 완충액 (버퍼) 이해

면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요.
이 링크 : https://blog.csdn.net/fu_huo_1993/article/details/88224987

 버퍼 프로필

          니오의 완충액 용기베이스의 특정 유형의 저장. 솜씨 버퍼 니오의 다양한 사용할 수 있도록하기 위해, 우리는 버퍼를 이해하는 데 필요한 세 가지 중요한 속성.

     1. 용량 :이 나타내는 요소를 포함하는 버퍼들 수 있지만 불변 용량 음극 
     2. 제한 버퍼에 의해 표현된다 : 최초의 일 비 읽기 또는 쓰기 엘리먼트 인덱스를 , 그것을 제외 될 수 없다 <용량 = 
     3. 위치 : 버퍼에 의해 표현되는 다음의 요소 수있다 읽기 또는 쓰기 엘리먼트 인덱스 및 음수가 될 수 <= 한도

0 <= position <= limit <= capacity

 

둘째, 상대 및 절대 운전 조작

     동작에 대하여 : 읽기 또는 쓰기 동작의 대향 직접 읽을 또는 요소 번호 물품있어서 윌 변성 버퍼를 위치 , 값 buffer.get () :
     절대 동작 : 인덱스에서 직접 동작하는 수정되지 버퍼 위치 , 값 buffer.get (지수).
     즉 : 인덱스에 기초하여 동작에 직접 그렇지 않으면 동작은 상대적 절대적이다.

셋째,이 문서는 버퍼의 방법을 사용

    buffer.put (데이터)를    데이터 버퍼에 기록 ===> buffer.get는 ()           ===> 상기 버퍼로부터 데이터를 취득    buffer.get (인덱스)   의 인덱스에서 취득한 버퍼 ===> 절대 작동 데이터의 position` '의 값을 수정하지 않을 buffer.flip ()         ===> 판독 버퍼 동작으로 기록 동작 변환 buffer.clear ()를       기록 버퍼에 대한 판독 동작에서 변환을 ===> 동작,`주`버퍼의 데이터가 삭제되지 않습니다 이번에는 단지 위치, 한계 값을 수정하고, 표시
    
   
       
      

버퍼의 작동 넷째, 구체적인 예


 

-1 네 각 단계별 위치 한계 유통, 상기 1 개 2 3 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