JAVA NIO 독서 노트 제2 장 buffer

영어 부터 배 워.
 
Buffers work hand in glove with channels 밀접 한 협력, 긴밀 한 협조 의 뜻
 
1 buffer 의 api flip poistion mark reset rewind 는 통신 을 쓰 는 인 코딩, 디 코딩 프로그램 에 상당히 좋 습 니 다.
 
2 These methods return a reference to the object they were invoked upon (this). This is a class design technique that allows for invocation chaining
 
 buffer.mark().position(5).reset();
 
이런 스타일 의 api 를 invocation chainint 라 고 합 니 다.
 
사실 hibenate 의 Criteria 도 이런 스타일 입 니 다. 기본적으로 한 대상 에서 연속 적 인 조작 이 필요 한 것 은 이런 스타일 로 쓸 수 있 습 니 다.
 
List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.in( "name", new String[] { "Fritz", "Izi", "Pk" } ) )
    .add( Restrictions.disjunction()
    .add( Restrictions.isNull("age") )
    .add( Restrictions.eq("age", new Integer(0) ) )
    .add( Restrictions.eq("age", new Integer(1) ) )
     .add( Restrictions.eq("age", new Integer(2) ) )
    ) )
    .list();
 
3. 대량 읽 기와 쓰 기 를 할 때 Buffer Underflow Exception, BufferOverFlowException 두 가지 이상 은 흔히 볼 수 있 습 니 다.
 
 
   Buffer 는 라인 이 안전 한 것 이 아니 라 다음 과 같은 표기 법 으로 잠재 적 인 위험 이 있다
 
int count = buffer.remaining();
for (int i = 0; i < count, i++) {
     myByteArray [i] = buffer.get(
}
 
4. Duplicate 작업 은 같은 데이터 의 두 개의 커서 를 얻 을 수 있 습 니 다. 즉, 우 리 는 더욱 복잡 한 일 을 할 수 있 습 니 다. 이것 은 반드시 응용 장면 이 있 을 것 입 니 다.
 
5  높낮이 (BIG ENDIAN, LITTLE ENDIAN) 문 제 는 ByteOrder 대상 으로 해결 할 수 있 습 니 다.
 
6  DirectBuffer 이론 적 으로 IO 작업 에 있어 성능 향상 을 가 져 올 수 있 지만 그 진정한 효율 은 환경의 영향 을 많이 받 아 메모리 사용 비용 이 힙 안에 있 지 않다.성능 향상 을 가 져 올 지 여 부 는 실측 해 야 하기 때문에 이 buffer 를 사용 하면 스위치 옵션 으로 사용 하 는 것 이 좋 습 니 다.
 
7 Memory - Mapped Buffers 는 메모리 맵 으로 파일 을 읽 고 쓸 수 있 지만 세부 사항 에 관심 을 가 져 야 할 수도 있 으 며 다음 분 해 를 들 을 수 있 습 니 다.
 
 

좋은 웹페이지 즐겨찾기