強い参照、ソフト参照、弱参照、ファントム参照の違いは何ですか?
この舗装の質問には、両方の副トピックの非常に高い周波数、優れた実績、それを必要としています。
異なる参照タイプ、主に異なるオブジェクトへのアクセス(到達)状態とガベージコレクションの影響を反映し
- 強い参照:
)(OBJ =新しいオブジェクトオブジェクト、objが新しいキーワードが作成した通常のオブジェクトに強い参照が強参照されている:私たちの共通のようなコーディング
長いオブジェクトへの強い基準点として、オブジェクトが表示することができるであろうように、ガベージコレクタは、あろうないようなオブジェクトをタップ
通常のオブジェクトのため、長い範囲の参照を超え又はヌルに割り当て強い参照を表示するように、それはゴミ収集することができるように、関係のない他の参照している場合
- ソフト参照
ソフト参照のライフサイクルは、強い参照よりも短く、
JVMはメモリ不足を考えると、それはオブジェクトへのソフト参照を回復しようとして行きます
あなたはJVMのメモリ空き思われる場合は、一時保留ソフト参照
- 弱参照
ライフサイクルの弱参照は、その管轄下のプロセスメモリのガベージコレクタスレッドスキャンの領域にソフト参照よりも短い、弱参照を持つオブジェクトの発見に関係なく、現在のメモリ空間が不十分であると、それは、そのメモリを解放することができ
- ファントム参照
ファントム参照はまた、仮想的な基準と呼ばれています
ファントム参照オブジェクトのみを保持している場合ファントム参照は、関係の最も弱い種類によって引用され、そしてそれは、それが唯一のコンストラクタおよびGet()メソッドであり、それはいつでも回収することができる、任意の参照を持っていない、及びそれは、参照キューとReferenceQueueを使用しなければならないだけで仮想、仮想参照が参照するオブジェクトを取得することができないだろうと言うことであることは、nullを返します。get()メソッドです