WeakHashMap.htmlのJavadocで、それは言った
「WeakHashMap の各キー オブジェクトは、弱参照の参照対象として間接的に格納されます。したがって、キーは、マップの内側と外側の両方で、キーへの弱参照がガベージ コレクターによってクリアされた後にのみ、自動的に削除されます。」
その後
値オブジェクトは、WeakHashMap 自体を介してそのキーを間接的に参照する場合があることに注意してください。つまり、値オブジェクトは、関連する値オブジェクトが最初の値オブジェクトのキーを強く参照する他のキーオブジェクトを強く参照する場合があります。
しかし、WeakHashMap では Key と Value の両方を弱参照にするべきではないでしょうか? つまり、メモリが不足している場合、GC は値オブジェクトによって保持されているメモリを解放します (ほとんどの場合、値オブジェクトはキー オブジェクトよりも多くのメモリを使用する可能性が高いため)。
また、GC が Value オブジェクトを解放すると、Key オブジェクトも解放されるのでしょうか?
基本的に、メモリが少ないときにメモリ使用量を削減する HashMap を探しています (GC は必要に応じて値とキー オブジェクトを収集します)。
Javaで可能ですか?
ありがとうございました。