私が知っているように、16バイトのブールサイズ{ヘッダーとして8、1ペイロード、* 8への配置}
ブール変数が配列だった場合、どれくらいかかりますか...
私の参照
Boolean
オブジェクトまたはboolean
プリミティブについて質問していますか? オブジェクトのサイズは 16 バイトかもしれませんが (おそらく実装に依存します)、boolean
おそらく 4 バイトを消費します (int
暗黙的に使用されます)。
したがって、バイト (は配列のサイズ) + オブジェクト ヘッダーboolean[]
を消費します。+ヘッダーを消費します(サイズに関するあなたの仮定によると.N * 4
N
Boolean[]
N * 16
Boolean
そうは言っても、クラスが行っているように、独自の配列のようなクラスを作成し、32 個のブール値を 1 つにパックすることを検討してくださいint
(いくつかのビット操作を手動で記述する必要があります) BitSet
。
配列オブジェクトのサイズは次のようになります: 8 + 4 = 12 バイト (ここで 4 は配列の長さです) 配列の長さが N の場合、ブール要素は次のようになります: N*16 バイト したがって、サイズは次のようになります: (12 + N * 16 ) バイト (ceil) を 8 で丸めたもの
例として、N = 10 の場合、12 + 10 * 16 = 172 となり、JVM で数値を四捨五入すると、サイズは 176 バイトになります。