Java ではブール型は何バイトを占めますか?

coldplay.xixi
リリース: 2020-10-20 10:43:11
オリジナル
7606 人が閲覧しました

Java のブール型はバイト数: 1.1 ビットを占めます。その理由は、ブール型の値には true と false の 2 つの論理値しかないためです。コンパイル後は 1 と 0 で表されます。 ; 2. 1 バイト、その理由は、1 と 0 はコンパイル後に 1 ビットのスペースしか占有しませんが、コンピュータによって処理されるデータの最小単位は 1 バイトであるためです。

Java ではブール型は何バイトを占めますか?

なぜこの質問をしたいのですか? まず、Java で定義されている 8 つの基本データ型のうち、他の 7 型を除いて、メモリ占有バイトをクリアします。また、仮想マシンにはブール型が存在しないため、ブール型が占有する特定のバイト数は指定されません。ブール型は、コンパイル後に他のデータ型で表されます。バイト数ブール型はバイトを占めますか?疑問に思ってネットで調べてみると、基本的には以下の通りです:

1. 1 bit

理由は、boolean 型の値が true と true の 2 つの論理値しか持たないためです。 false. コンパイル後、それらは 1 と 0 で表されます。これら 2 つの数値は 1 ビット (ビット) をメモリに保存するだけで済みます。ビットはコンピュータの最小記憶単位です。

2. 1 バイト

理由は、1 と 0 はコンパイル後に 1 ビットのスペースしか占有しませんが、コンピュータがデータを処理する最小単位は 1 バイトであり、1 バイトは 8 ビットに等しいためです。 、実際の記憶領域は、1 バイトの最下位ビットを使用して格納し、他の 7 ビットを 0 で埋めます。値が true の場合、格納されるバイナリは 0000 0001、false の場合、格納されるバイナリは次のようになります。 0000 0000。

3, 4 バイト

理由は、「Java 仮想マシン仕様」の説明にあります。「ブール データ型は定義されていますが、サポートされるのは非常に限定的です。バイトコード命令はありません。」 Java 仮想マシンのブール値専用 Java 言語式で演算されるブール値は、コンパイル後に Java 仮想マシン内で int データ型に置き換えられ、ブール配列のバイト配列にエンコードされます。 Java 仮想マシンでは、各ブール要素は 8 ビットを占有します。」このようにして、ブール型は単独で使用される場合は 4 バイトを占め、配列では 1 バイトを占めると結論付けることができます。

明らかに 3 番目のステートメントのほうがより正確なステートメントですが、なぜ仮想マシンはブール値ではなく int を使用するのでしょうか? byte または short を使用しないのはなぜですか? より多くのメモリ領域を節約できるのではありませんか?多くの人は当然そう考えるでしょう。私もこの疑問を持ちました。情報を調べたところ、int を使用する理由は、現在の 32 ビット プロセッサ (CPU) では一度に処理されるデータが 32 ビットであることがわかりました (ここではありません) 32/64 ビット システムを指しますが、CPU ハードウェア レベルを指します)、効率的なアクセスの特徴があります。

最終要約:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html の公式ドキュメントの説明によると:

boolean : ブール データ型には、true と false の 2 つの値しかありません。このデータ型は、true/false 条件を追跡する単純なフラグに使用します。このデータ型は 1 ビットの情報を表しますが、その「サイズ」は何かではありませんこれは正確に定義されています。

ブール型: ブール型のデータ型には、true と false の 2 つの値しかありません。このデータ型は、true/false 条件を追跡する単純なマーカーに使用します。このデータ型はこのビットの情報を表しますが、その「サイズ」は正確に定義されていません。

ブール型は正確な定義を与えていないことがわかります。「Java 仮想マシン仕様」では、ブール配列の 4 バイトと 1 バイトの定義が与えられています。詳細は仮想マシンの実装に依存します. 仕様に従っているので、1バイトでも4バイトでも可能です。これは実際には、コンピューティング効率とストレージ容量の間の勝負であり、どちらも非常に重要です。

関連する無料学習の推奨事項: Java 基本チュートリアル

以上がJava ではブール型は何バイトを占めますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート