強い、弱い、基準ファントム参照

著者:winterSunshineの
リンクします。https://www.zhihu.com/question/37401125/answer/100981172
出典:ほとんど知っている
著者が著作権を保有。著者は認可商業転載してください接触、非商用の転載は、ソースを明記してください。

概念を説明する1
    • 強い参照は、最も一般的に使用される基準である:O =新しいオブジェクト(オブジェクト) ; 特性:GCはできません
      • 明示的にnullに設定オブジェクト参照:O = NULL; //ヘルプがガベージコレクタのオブジェクトを回復
      • 例としては、ソースコードのArrayList。

    • ソフト参照がされているいくつかを記述するために使用されるが、必ずしもだけでなく、表現するためにjava.lang.ref.SoftReferenceクラスを使用してJavaでオブジェクトと。オブジェクトに関連付けられたソフト参照の場合、JVMは時間だけのメモリ内のオブジェクトを回復します。したがって、それも問題のOOMを解決するために使用することができ、この機能は、キャッシュを実装するための理想的です、ページキャッシュとして、画像をキャッシュします。
      1. ブラウザのページのキャッシュ・インスタンス:
      2. ソフト参照組合せで用いる参照キュー(ReferenceQueue)とすることができる、ガベージコレクタによって参照されるソフト参照オブジェクト場合、Java仮想マシンがこのソフト参照に追加され、関連するキューを挙げ。

  • 弱参照というソフト参照の違い:唯一の弱参照オブジェクトは、より短いライフサイクルを持っています。オブジェクトのみ弱参照を発見したら、その管轄下ガベージコレクタスレッドスキャンメモリ領域の処理では、関係なく、現在のメモリ空間の十分か否かで、そのメモリを解放します。しかし、ガベージコレクタは、低優先度のスレッドであるため、必ずしも迅速にのみ弱参照を持つオブジェクトを見つけることができません。
オブジェクトが時折使用され、そしてあなたがいつもに取得するために使用することはできますが、このオブジェクトに対するガベージコレクションに影響を与えたくない場合は、このオブジェクトを覚えて弱参照を使用する必要があります。
  1. 例:

  • 仮想基準もファントム参照として知られている、物体の存在が参照されるがリアルタイムで影響が仮想基準介してオブジェクトへの参照のために得られないことがありません仮想寿命を有します。のみ使用:システムは、通知オブジェクトは、GCは、JAVA仮想基準PhantomReferenceで実装されて受信することができます。
2.別の比較します:

おすすめ

転載: www.cnblogs.com/yngjian/p/12059428.html