1. ホーム
  2. java

[解決済み] ゴーストリファレンスとは?

2022-02-01 17:16:52

質問内容

ゴーストリファレンスってなんだろうと思っていたんですが。オブジェクトを参照する必要がないことでしょうか?EDIT: すみません、はっきりしませんでした、言語はJavaで、リンクリストについて読みました。LinkedQueueのイテレータを書いてremoveメソッドをサポートする問題を読みながら。そして、あなたは幽霊の参照を持つことになります。

どのように解決するのですか?

これと同じかどうかは分かりませんが、もしかして 弱参照 .

弱参照は、ガベージコレクションを持つ言語で、非弱参照が存在しない場合に、ガベージコレクションによるオブジェクトの削除をブロックせずにオブジェクトへの参照を持つために使用されます。

言語によって、この機能に対するセマンティクスは異なります。Javaでは、ソフト参照、弱参照、ファントム参照を定義しており、それぞれ微妙に仕組みが異なっています。

これはいろいろな場面で役に立ちます。例えば、Blackberryでは、システムイベント(着信など)をリッスンするListenerオブジェクトを定義することができます。リスナーをシステムに登録すると、システムはそのリスナーへの弱い参照を保持します。そうすれば、そのオブジェクトへの他のすべての参照がなくなったとき(アプリケーションがシャットダウンしたときなど)、弱い参照はもはやリスナーを指さず、そのリスナーのためのメモリは、プログラマが登録を解除することを忘れずに解放されます。