Javaにはソフト参照の概念があることを知っています。仮に:
1) オブジェクト A を参照するソフト参照 "sf" があります
2)オブジェクトAでは、オブジェクトBを参照する強い参照があります
3) オブジェクト A と B は他のどこにも参照されていません。
定義上、オブジェクト A とオブジェクト B はどちらも「そっと到達可能」ですよね?
次に、メモリが不足していると GC が起動します。GC がオブジェクト B をリサイクルするが、オブジェクト A をリサイクルしないということは可能でしょうか?
その場合、後で「sf」を介してオブジェクト B にアクセスする場合は、null になります。どのようにjavaがそのようなケースを回避するのですか?
Java docに説明がありません。