Java は次のように書くことができます:
new PhantomReference(new Object(), null)
この場合new Object()
は回収されますか?
私が理解しているように、ファントム参照はfinalize()
メソッド使用の代替です。
そして、キューに参照が表示された後、いくつかの追加アクションを実行してから実行する必要がありますclear()
Java doc はそのままです:
null キューを使用してファントム参照を作成することは可能ですが、そのような参照はまったく役に立ちません。その get メソッドは常に null を返し、キューを持たないため、キューに入れられることはありません。
エンキューされない場合はどういう意味ですか?
私が理解しているように、メソッドの呼び出しを終了した後、参照が referenceQueue に追加されないことを意味します。
1. オブジェクト メモリがすぐにクリアされる2.
オブジェクト メモリがクリアされない
どの場合が正しいですか?