7

私が知っているように、16バイトのブールサイズ{ヘッダーとして8、1ペイロード、* 8への配置}

ブール変数が配列だった場合、どれくらいかかりますか...

私の参照

4

2 に答える 2

6

Booleanオブジェクトまたはbooleanプリミティブについて質問していますか? オブジェクトのサイズは 16 バイトかもしれませんが (おそらく実装に依存します)、booleanおそらく 4 バイトを消費します (int暗黙的に使用されます)。

したがって、バイト (は配列のサイズ) + オブジェクト ヘッダーboolean[]を消費します。+ヘッダーを消費します(サイズに関するあなたの仮定によると.N * 4NBoolean[]N * 16Boolean

そうは言っても、クラスが行っているように、独自の配列のようなクラスを作成し、32 個のブール値を 1 つにパックすることを検討してくださいint(いくつかのビット操作を手動で記述する必要があります) BitSet

于 2012-06-26T07:09:03.427 に答える
-1

配列オブジェクトのサイズは次のようになります: 8 + 4 = 12 バイト (ここで 4 は配列の長さです) 配列の長さが N の場合、ブール要素は次のようになります: N*16 バイト したがって、サイズは次のようになります: (12 + N * 16 ) バイト (ceil) を 8 で丸めたもの

例として、N = 10 の場合、12 + 10 * 16 = 172 となり、JVM で数値を四捨五入すると、サイズは 176 バイトになります。

于 2012-06-26T07:32:19.457 に答える