Javaの参照型とは何ですか

(*-*)浩
リリース: 2020-09-15 14:45:59
オリジナル
18886 人が閲覧しました

Java の参照型は、基本データ型を除くすべての型を指します。 Java には、強参照、ソフト参照、弱参照、仮想参照という 4 つの参照タイプがあります。参照型とプリミティブ型は、異なる特性と使用法を持っています。

Javaの参照型とは何ですか

推奨コース: Java チュートリアル

Java には、参照型とプリミティブ型 (または組み込み型) の 2 つの異なる型があります。型)

参照型とプリミティブ型はまったく異なる動作をし、異なるセマンティクスを持ちます。

参照型とプリミティブ型には異なる特性と使用法があり、次のものが含まれます: サイズと速度の問題、この型がどのデータ構造に格納されるか、参照型とプリミティブ型の場合

デフォルトクラスのインスタンス データとして使用する場合に指定される値。

オブジェクト参照インスタンス変数のデフォルト値は null ですが、プリミティブ型インスタンス変数のデフォルト値はその型に関連付けられます。同時に、オブジェクト指向操作の一貫性も確保します。

これらの基本タイプには、対応するカプセル化タイプがあります: Integer、Short、Long、Byte、Float、Double、Character など。

Java の 4 つの参照タイプ:

それらは、強参照 (StrongReference)、ソフト参照 (SoftReference)、弱参照 (WeakReference)、および PhantomReference (仮想参照) です。彼らはいた GC が収集される可能性が最も高いものから最も低いものまでランク付けされています。

StrongReference

強参照が存在する限り、ガベージ コレクターは参照されたオブジェクトを決して再利用しません。たとえメモリが不足していても、JVM は直接 OutOfMemoryError をスローします。そしてリサイクルしません。のように 強参照とオブジェクトの間の接続を解除したい場合は、強参照を明示的に null に割り当てることで、JVM がオブジェクトを適切なタイミングでリサイクルできるようになります。

ソフト リファレンス (SoftReference) )

ソフト参照は、必須ではないが有用なオブジェクトを記述するために使用されます。メモリが十分な場合、ソフト参照オブジェクトは再利用されませんが、メモリが不足する場合にのみ、ソフト参照オブジェクトが再利用されます。 同様に、ソフト参照オブジェクトをリサイクルした後も十分なメモリが存在しない場合は、メモリ オーバーフロー例外がスローされます。この機能は、Web ページのキャッシュ、画像などのキャッシュ テクノロジを実装するためによく使用されます。 キャッシングなど

JDK1.2 以降では、ソフト参照を表すために java.lang.ref.SoftReference クラスを使用します。

弱参照(WeakReference)

弱参照の参照強度はソフト参照よりも弱く、メモリが十分であるかどうかにかかわらず、 JVM がガベージ コレクションを開始すると、弱参照に関連付けられたオブジェクトがリサイクルされます。

JDK1.2 以降では、弱い参照を表すために java.lang.ref.WeakReference を使用します。

PhantomReference(仮想参照)

仮想参照は最も弱い参照関係です。オブジェクトがファントム参照のみを保持している場合、そのオブジェクトには参照がありません。同様に、 JDK1.2 以降は、PhantomReference クラスで表されますが、このクラスのソース コードを見ると、コンストラクターと get() メソッドが 1 つだけあり、その get() メソッドが 1 つしかないことがわかります。 null を返すということは、オブジェクトが仮想参照を通じて取得されないことを意味します。仮想参照は ReferenceQueue 参照キューと一緒に使用する必要があります。

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

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