私は最近、Javaでソフト、ウィーク、ファントムの参照型を試してみましたが、まだ出会っていない用途があるのではないかと考えています。私は過去にそれらをさまざまな目的で使用しましたが、常に次のカテゴリに分類されています。
- ファイナライザーの代わりにファントム参照を使用する-死んだオブジェクトが復活する可能性がないため、これが好きです
- ハッシュマップで弱参照を使用してobject=>valueマッピングを保持します。ここで、マッピングは、オブジェクトが他の場所に存在する場合にのみ配置する必要があります(たとえば、ソースを作成できないライブラリ内のオブジェクトに追加情報を追加する必要がある場合に便利です。変更)
- キャッシュにソフト参照を使用する(JVMはソフト参照をずっと長く保持し、必要と思われる場合にのみ解放するため、弱参照よりもはるかにうまく機能します)。
しかし、そこには3つの用途しかなく、私がこれまでに出会ったことのない、役立つかもしれないものがもっとたくさんあると思います。すべての提案を歓迎します!