キャッシュされたオブジェクトへのソフト参照を持つキャッシュがあります。キャッシュされたオブジェクトがクリアされたときに何が起こるかについて、キャッシュを使用するクラスの動作の機能テストを作成しようとしています。
問題は、ソフト参照を確実にクリアできないように見えることです。大量のメモリを使い果たすだけではうまくいきません。ソフト参照がクリアされる前に OutOfMemory が発生します。
Javaにソフト参照をより積極的にクリアさせる方法はありますか?
ここにあります:
「ただし、OutOfMemoryError がスローされる前にすべての SoftReferences がクリアされることが保証されているため、理論的には OOME を引き起こすことはありません。」
つまり、上記のシナリオは、キャッシュされたオブジェクトのハード参照を保持しているクラスでどこかにメモリリークがあることを意味する必要がありますか?