3
[] 길이 N.몇 바이트가 사용됩니까?
public class MysteryBox { // 16B (object overhead)
private int N; // 4B (int)
private boolean[] items; // 8B (reference to array)
// 24B (header of array)
// N (boolean array of size N)
// 4B for padding
// 17N (boolean objects, 16B of object metadata, 1B of data equivalent to 1 boolean)
...
}
N의 함수로서 사용되는 바이트 수 (64 비트 메모리 비용 모델의 배열 항목에 입력 부울 의 N 항목을 저장 형 MysteryBox의 목적을 고려)? 내 대답이 맞습니까?
귀하의 질문에 대한 직접적인 대답은 아니지만, 아마도'java.util.BitSet'은 이러한 종류의 정보를 저장하는 데 좋은 아이디어 일 수 있습니다. –
'int'가 64 비트 시스템의 스택에서 64 비트가 아니어야합니까? 또한 클래스 메타 데이터를로드해야하며 클래스의 각 인스턴스는 스택 및 힙의 메모리를 사용합니다. – Hannes
내가 기억하는 한, 불리언은 각 4 바이트에 저장됩니다. – njzk2