ホームページ Java &#&チュートリアル JAVA の基本: 混同されやすい 2 つのタイプ (基本データと参照データ)

JAVA の基本: 混同されやすい 2 つのタイプ (基本データと参照データ)

Jul 26, 2018 pm 02:09 PM

JAVA の基礎を学ぶとき、誰もが私と同じように、基本データ型と参照データ型をどのように区別するか常に混同すると思います。それぞれの特徴をまとめてみましたので参考にしてください。

1. 基本データ型

byte: Java の最小のデータ型で、メモリ内で 8 ビット (bit)、つまり 1 バイトを占有します。値の範囲は -128 ~ 127、デフォルト値は次のとおりです。 0

short: 短い整数型、メモリ内で 16 ビット、つまり 2 バイトを占有、値の範囲 -32768 ~ 32717、デフォルト値 0

int: 整数型、整数の格納に使用され、内部的に 32 を占有ビット、つまり 4 バイト、値の範囲は -2147483648 ~ 2147483647、デフォルト値は 0 です

long: 長整数、メモリ内の 64 ビット、つまり 8 バイトを占有します -2^63 ~ 2^ 63 -1、デフォルト値 0L

float: 浮動小数点型、メモリ内の 32 ビット、つまり 4 バイトを占有し、小数点付きの数値を格納するために使用されます (double との違いは、float 型の有効な小数点であることです)はわずか 6~7 ビットです)、デフォルト値 0

double: 倍精度浮動小数点型、小数点付きの数値を格納するために使用され、メモリ内の 64 ビット、つまり 8 バイトを占有します、デフォルト値 0

char : 単一文字の格納に使用される文字タイプ、16 ビット、つまり 2 バイトを占有します。値の範囲は 0 ~ 65535 で、デフォルト値は空です。

boolean: ブール型、1 バイトを占有し、以前に使用されます。 true または false (true、false の 2 つの値のみ) を決定します。デフォルト値は false

class

interface type

array type

enumeration type

アノテーションの型

3. 違い

基本的なデータ型作成時にスタック上にメモリが確保され、値はスタック上に直接格納されます。

参照データ型作成時には、まずスタック上の参照 (ハンドル) にメモリの一部を割り当てる必要があり、オブジェクトの特定の情報がヒープ メモリに格納され、次に参照がヒープ メモリに格納されます。 stack はヒープ アドレス内のオブジェクトを指します。

たとえば、属性 name、年齢、パラメータを持つコンストラクター メソッドを持つクラス person があります: Person p = new Person("zhangsan",20);

メモリ内の具体的な作成プロセス:

1. まず、スタック メモリに p のスペースを割り当てます。 2. ヒープ メモリに Person オブジェクトのスペースを割り当て、その 3 つの属性の初期値を 0 に設定します。属性のクラス パーソン 定義に、オブジェクトの 2 つの属性に値を割り当てます。

4. コンストラクター メソッドを呼び出し、2 つの属性に値を割り当てます。 20;この時点では p と person オブジェクトの間に接続がないことに注意してください) ;

5. ヒープ メモリ内の person オブジェクトのアドレスをスタック内の p に割り当てます。 (ハンドル)p. を参照してください。

IV. 関連知識

静的領域

は、自動グローバル変数と静的変数 (静的グローバル変数とローカル変数を含む) を保存します。静的領域の内容はプログラム全体のライフサイクル全体にわたって存在し、コンパイル中にコンパイラによって割り当てられます。

ヒープ領域

は、通常、プログラマによって割り当てられ、解放されます。malloc 一連の関数または new 演算子によって割り当てられたメモリは、free または delete によって決定されます。プログラムが終了し、OS によって解放されるまで存在します。柔軟な使用が特徴で、比較的大きな領域ですが、エラーが発生しやすいです

スタック領域

はコンパイラによって自動的に割り当ておよび解放され、スタック上の内容はスタックのスコープ内にのみ存在します。関数が終了すると、これらのコンテンツも自動的に破棄されます。これは効率が高いという特徴がありますが、スペースが限られています。

ここには定数文字列が配置されます。プログラム終了後にシステムにより解放されます。

関連する推奨事項:

JAVA チュートリアル | 第 2 章 基本データ型

JavaScript の基本データ型と参照型の違いの詳細な説明

ビデオ チュートリアル:

基本データ型をパラメーターとして渡す -最新のJavaが完成しました

以上がJAVA の基本: 混同されやすい 2 つのタイプ (基本データと参照データ)の詳細内容です。詳細については、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? 会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? Apr 19, 2025 pm 04:51 PM

一部のアプリケーションが適切に機能しないようにする会社のセキュリティソフトウェアのトラブルシューティングとソリューション。多くの企業は、内部ネットワークセキュリティを確保するためにセキュリティソフトウェアを展開します。 ...

MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? Apr 19, 2025 pm 06:21 PM

システムドッキングでのフィールドマッピング処理は、システムドッキングを実行する際に難しい問題に遭遇することがよくあります。システムのインターフェイスフィールドを効果的にマッピングする方法A ...

エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? Apr 19, 2025 pm 11:42 PM

データベース操作にMyBatis-Plusまたはその他のORMフレームワークを使用する場合、エンティティクラスの属性名に基づいてクエリ条件を構築する必要があることがよくあります。あなたが毎回手動で...

Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Apr 19, 2025 pm 11:45 PM

intellijideaultimatiateバージョンを使用してスプリングを開始します...

名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? 名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? Apr 19, 2025 pm 11:30 PM

多くのアプリケーションシナリオでソートを実装するために名前を数値に変換するソリューションでは、ユーザーはグループ、特に1つでソートする必要がある場合があります...

Javaオブジェクトを配列に安全に変換する方法は? Javaオブジェクトを配列に安全に変換する方法は? Apr 19, 2025 pm 11:33 PM

Javaオブジェクトと配列の変換:リスクの詳細な議論と鋳造タイプ変換の正しい方法多くのJava初心者は、オブジェクトのアレイへの変換に遭遇します...

データベースクエリにTKMYBATISを使用するときに、エンティティクラスの変数名の構築クエリ条件をエレガントに取得する方法は? データベースクエリにTKMYBATISを使用するときに、エンティティクラスの変数名の構築クエリ条件をエレガントに取得する方法は? Apr 19, 2025 pm 09:51 PM

データベースクエリにTKMYBATISを使用する場合、クエリ条件を構築するためにエンティティクラスの変数名を優雅に取得する方法は一般的な問題です。この記事はピン留めします...

Redisキャッシュソリューションを使用して、製品ランキングリストの要件を効率的に実現する方法は? Redisキャッシュソリューションを使用して、製品ランキングリストの要件を効率的に実現する方法は? Apr 19, 2025 pm 11:36 PM

Redisキャッシュソリューションは、製品ランキングリストの要件をどのように実現しますか?開発プロセス中に、多くの場合、ランキングの要件に対処する必要があります。

See all articles