-
弱い参照
弱参照オブジェクト、ないからその対象を防ぐことはできませんが、ファイナライズ作ら確定した後、再利用されています。
弱参照は、ほとんどの場合canonicalizingのマッピングを実装するために使用されています。 ガベージコレクタはオブジェクトが弱到達可能であることをある時点で決定すると仮定する。
その時点では、アトミックそのオブジェクトへのすべての弱参照と、他のすべての弱参照クリアされ
弱く、そのオブジェクトが強く、ソフト参照のチェーンを介して到達可能であるから-reachableオブジェクトを。
同時にそれは、ファイナライズする以前に弱到達可能なすべてのオブジェクトを宣言します。
同時に、またはその後のある時点では、これらの新しくをエンキューします参照キューに登録されている弱参照をクリア。 導入されたバージョン: 1.2
翻訳:
防ぐことはできません弱い参照オブジェクトは、彼らの参照オブジェクトの終了とリカバリを終了させます。弱参照は、ほとんどの場合、マッピングを実装するために使用されています。
ガベージコレクタは、ある時点で決定することの目的は弱く到達可能な、それは自動的にそのオブジェクトへのすべての弱参照、および他の弱いアップオブジェクトへのすべての弱参照がクリアされていると仮定し、これらのオブジェクトは、強力な一連の利用可能です参照とソフト参照がオブジェクトから届きます。同時に、それはすべてのオブジェクトが弱いの終了前にご利用いただけます宣言します。
同時に、または後には参照キュー(参考キュー)にそれらの新しいクリアラベル弱参照を追加します。
コンストラクタの概要:
弱い参照(Tリファ) 弱い参照(Tリファレント、ReferenceQueue <?スーパー T> Q)
説明:
オブジェクトのみ弱い参照限り、ガーベッジコレクション動作の場合は、関係なく、JVMのメモリのメモリはオブジェクトによって占め取り戻すだろう、十分ではありません。オブジェクト参照は、get()メソッドによって得ることができます。
例:
パブリック 静的 ボイドメイン(文字列[]引数){ オブジェクトO1 = 新しいオブジェクト(); 弱い参照の<Object>弱い参照= 新しい弱い参照<> (01) System.out.println( "------回收前------" ); System.out.println( "01:" + O1)。 System.out.println( "弱い参照:" + weakReference.get()); O1 = nullを。 System.gc(); System.out.println( "------回收后------" ); System.out.println( "01:" System.out.println( "弱い参照:" + weakReference.get()); }
結果:
回復する前------ ------ O1:java.lang.Object@4554617cの java.lang.Object@4554617c:弱い参照 回復後------ ------ O1:nullの 弱い参照:ヌル 終了コードで仕上げプロセス 0