태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


댓글 하나가 운영자에겐 커다란 힘이 됩니다!

@ Buffer class

  - 버퍼는 운영체제에서 커널이 관리하는 시스템 메모리를 직접 접근 할 수 있다.

 - 하나의 데이터 형태를 저장하는 컨테이너라고도 볼 수 있음.

 - 시작과 끝이 있는 선형 데이터 구조를 가지고 있다.

 

                       <계층 구조>

Buffer

         |- ByteBuffer - MappedByteBuffer

         |- CharBuffer

         |- IntBuffer

         |- LongBuffer

         |- FlooatBuffer

         |- DoubleBuffer

Byteorder

 

(Byteorder : 버퍼, 메모리의 바이트 순서를 조정하여 주기 위해서 사용한다. 주로 자바 네트워킹, 유닉스 OS에서는 빅-엔디안을 사용하고 인터넷 프로토콜(IP)도 빅-엔디안을 사용하므로 사용할 일이 거의 없다. 하지만 윈도우 계열에서는 리틀-엔디안이므로 이를 빅-엔디안과 호환성 있게 하기 위해 바이트의 순서를 잡아줄 필요가 있다. )

 

@ 버퍼의 네가지 기본 속성(attribution)

1.  position

  : 버퍼에서 현재 읽거나 쓸 위치값이다. limit보다 클 경우 런타임 예외가 발생한다. 초기값은 0에서 시작한다.

2. limit

  : 버퍼에서 읽거나 쓸 수 있는 한계 값이다. capacity보다 클 수 없다. 초기값은 capacity 값과 같다.

3. capacity

  : 버퍼의 크기, 즉 메모리의 크기를 나타낸다. 한번 생성되면 변경될 수 없다.

4. mark

  : mark() 로 현재의 position을 표기해 둘 때 사용한다. reset() 으로 mark의 위치를 posiotion으로 바꿀 수 있다. 초기값으로 -1을 가진다.

 

@ 버퍼에서 데이터 읽고 쓰기

(ByteBuffer를 예로 들어서...)

1. 상대적 위치를 이용해서 1바이트씩 읽고 쓰기

 데이터 읽기  - public abstract byte get();

 데이터 쓰기 - public abstract ByteBuffer put (byte b)

get()이나 put()메서드를 이용해서 Buffer에서 데이터를 읽거나 쓰면 position은 1 증가 하게 된다. 

 또한, position이 capacity인 상태에서 get() 또는 put()을 호출하면 BufferUnderflowException과 BufferOverflowException이 발생한다.

위의 정보가 도움이 되셨나요? 그렇다면 댓글 하나만 남겨주세요.
댓글 하나가 운영자에겐 커다란 힘이 됩니다!

Write your message and submit
« PREV : 1 : ... 180 : 181 : 182 : 183 : 184 : 185 : 186 : 187 : 188 : ... 436 : NEXT »