3
크기가 32 인 부울 배열은 정수 변수보다 더 많은 공간을 차지합니까? 그렇다면, 왜, 얼마나?부울 배열은 같은 크기의 숫자보다 많은 공간을 차지합니까?
설명 : 자바에서
(즉, 관련이 있다면, 저를 용서 - 나는 확실하지 않다).
boolean arr=new boolean[32];
이 줄보다 더 많은 공간을 차지 :
이int num;
크기가 32 인 부울 배열은 정수 변수보다 더 많은 공간을 차지합니까? 그렇다면, 왜, 얼마나?부울 배열은 같은 크기의 숫자보다 많은 공간을 차지합니까?
설명 : 자바에서
(즉, 관련이 있다면, 저를 용서 - 나는 확실하지 않다).
boolean arr=new boolean[32];
이 줄보다 더 많은 공간을 차지 :
이int num;
자바 (32 개) boolean
의 배열은 자바 int
의 약 8 배 공간이 필요이 줄 것입니다. 이는 대부분의 컴퓨터 아키텍처에서 주소 지정 가능한 최소 메모리 단위가 8 비트 바이트이기 때문에 "묶음"불리언 배열을 만들기 위해서는 추가 오버 헤드가 필요하기 때문입니다.
부울 당 한 비트를 사용하려면 부울 배열 배열 대신 BitSet
클래스를 사용하십시오. 데이터 그 자체 이외에 약간의 오버 헤드가 발생하기 때문에 32 비트만으로 이러한 데이터 구조를 사용하는 것은 단순한 배열에서 전환하는 것을 정당화하기에 충분하지 않을 수 있습니다.
감사합니다. 그냥 분명히 : 부울 변수가 8 비트의 데이터를 필요로하지만 다른 비트를 무시하고 단일 비트만을 사용한다는 의미입니까? – user2705335
@ user2705335 올바른데, Java는 부울 값으로 8 비트를 사용합니다. – dasblinkenlight