DoubleBuffer — double 버퍼
DoubleBuffer — double 버퍼
DoubleBuffer는 double 버퍼예요. 이 클래스는 double 버퍼에 대해 네 가지 범주의 연산을 정의해요: 절대·상대 get/put 메서드(단일 double 읽기·쓰기), 절대·상대 일괄 get 메서드(이 버퍼의 연속 double을 배열로 전송), 절대·상대 일괄 put 메서드(double 배열이나 다른 double 버퍼의 연속 double을 이 버퍼로 전송), 그리고 double 버퍼를 컴팩트하는 메서드예요.
본문
public abstract sealed class DoubleBuffer extends Buffer implements Comparable<DoubleBuffer>
double 버퍼예요. double 버퍼는 allocation(버퍼 내용의 공간 할당), 기존 double 배열을 버퍼로 wrap(감싸기), 또는 기존 바이트 버퍼의 뷰 만들기를 통해 생성될 수 있어요.
바이트 버퍼와 마찬가지로 double 버퍼는 direct 또는 non-direct예요. 이 클래스의 wrap 메서드로 만든 double 버퍼는 non-direct예요. 바이트 버퍼의 뷰로 만든 double 버퍼는 바이트 버퍼 자체가 direct인 경우에만 direct예요. isDirect 메서드로 direct 여부를 알 수 있어요.
값을 반환하지 않는 메서드는 호출된 버퍼를 반환하도록 지정돼 있어 메서드 호출을 연결(chain)할 수 있어요. Java 1.4부터 사용할 수 있어요.
네 가지 연산 범주
- 단일 double — 절대·상대 get/put 메서드로 단일 double을 읽고 써요.
- 일괄 get — 절대·상대 일괄 get 메서드로 이 버퍼의 연속 double 시퀀스를 배열로 전송해요.
- 일괄 put — 절대·상대 일괄 put 메서드로 double 배열이나 다른 double 버퍼의 연속 double 시퀀스를 이 버퍼로 전송해요.
- 컴팩트 — double 버퍼를 컴팩트하는 메서드.
선택 연산
선택 연산(optional operation)으로 지정된 메서드는 읽기 전용 DoubleBuffer에서 호출되면 ReadOnlyBufferException을 던져요. array와 arrayOffset 메서드는 DoubleBuffer가 접근 가능한 double 배열로 뒷받침되지 않으면 UnsupportedOperationException을 던져요.
주요 정적 팩토리 메서드
static DoubleBuffer allocate(int capacity)— 새 double 버퍼를 할당해요.static DoubleBuffer wrap(double[] array)/wrap(double[] array, int offset, int length)— double 배열을 버퍼로 감싸요.
주요 연산 메서드
abstract double get()/double get(int index)— 상대·절대 get 메서드.abstract DoubleBuffer put(double d)/put(int index, double d)— 상대·절대 put 메서드 (선택 연산).abstract DoubleBuffer compact()— 이 버퍼를 컴팩트해요 (선택 연산).abstract DoubleBuffer duplicate()— 이 버퍼의 내용을 공유하는 새 double 버퍼를 만들어요.abstract DoubleBuffer slice()/slice(int index, int length)— 이 버퍼 내용의 공유 하위 시퀀스인 새 double 버퍼를 만들어요.abstract DoubleBuffer asReadOnlyBuffer()— 이 버퍼의 내용을 공유하는 새 읽기 전용 double 버퍼를 만들어요.final boolean hasArray()— 이 버퍼가 접근 가능한 double 배열로 뒷받침되는지 여부를 알려줘요.final double[] array()— 이 버퍼를 뒷받침하는 double 배열을 반환해요 (선택 연산).int compareTo(DoubleBuffer that)— 이 버퍼를 다른 버퍼와 비교해요.int mismatch(DoubleBuffer that)— 이 버퍼와 주어진 버퍼 사이의 첫 번째 불일치의 상대 인덱스를 찾아 반환해요.boolean equals(Object ob)— 이 버퍼가 다른 객체와 같은지 여부를 알려줘요.abstract ByteOrder order()— 이 버퍼의 바이트 순서를 가져와요.