ホームページ Java &#&ベース Java ではブール型は何バイトを占めますか?

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

Oct 20, 2020 am 10:43 AM
java

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Javaの平方根 Javaの平方根 Aug 30, 2024 pm 04:26 PM

Java の平方根のガイド。ここでは、Java で平方根がどのように機能するかを、例とそのコード実装をそれぞれ示して説明します。

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

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

Javaのアームストロング数 Javaのアームストロング数 Aug 30, 2024 pm 04:26 PM

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

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

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

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

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

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

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

See all articles