Java ではブール型は何バイトを占めますか?
Java のブール型はバイト数: 1.1 ビットを占めます。その理由は、ブール型の値には true と false の 2 つの論理値しかないためです。コンパイル後は 1 と 0 で表されます。 ; 2. 1 バイト、その理由は、1 と 0 はコンパイル後に 1 ビットのスペースしか占有しませんが、コンピュータによって処理されるデータの最小単位は 1 バイトであるためです。
なぜこの質問をしたいのですか? まず、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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java のアームストロング番号に関するガイド。ここでは、Java でのアームストロング数の概要とコードの一部について説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです
