Integer.SIZE/8 값을 입력 매개 변수로 정확히 할당하는 것은 무엇입니까?
4 바이트 용량 (32/8)의 ByteBuffer
인스턴스를 생성 중입니다.
ByteBuffer
인스턴스에 정수 (또는 4 바이트)를 두 개 이상 넣으면 java.nio.BufferOverflowException
이 발생합니다.
그것은 ByteBuffer를 객체를 생성한다 (I 읽고 단일 바이트를 작성하는 데 사용되는 생각. 나는두고이 개체 에서 바이트를 읽을 수있는 뜻 그래서 뭐? 그게?).
당신은 byte
에 넣어뿐만 아니라 다른 모든 기본 유형 부울을 제외 할 수 있습니다 int
, long
, short
, float
및 double
.
put(byte b)
메서드는 바이트를 씁니다. putInt(int value)
은 int를 씁니다. 등을 위해 ..
는 그래서 ByteBuffer.allocate() 메소드는 바이트를 돌려 공장 방법 같은 것 같다.
그것은 참으로 공장 방법이지만 Byte
하지만 ByteBuffer
인스턴스를 반환 할 수 없습니다. 실제로 클라이언트 클래스에서 ByteBuffer
클래스는 인스턴스화 할 수 없습니다.이 클래스는 추상 클래스입니다.
그래서 ByteBuffer.allocate()
가 ByteBuffer
클래스의 구현을 인스턴스화하고 클라이언트에 반환
ByteBuffer allocate = ByteBuffer.allocate(Integer.SIZE/8);
그래서 당신이 쓸 수 있습니다 :
allocate.putInt(1);
아니오,'Integer.SIZE'는 32, 그래서 그것은 4 바이트 버퍼를 생성합니다. 그리고 아니요, Byte를 반환하지 않습니다. ByteBuffer를 반환합니다. –
[JavaDoc] (https://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html#allocate (int))도 읽었습니까? –