質問: javaのガベージコレクションについて。 javaのガベージコレクションは、そのオブジェクトへの参照数をもとに廃棄するタイミングを決めていると聞いたのですが、 これはつまり、その条件(誰かから参照を受けている)を満たす限りにおいては絶対に廃棄されることはないということなのでしょうか。 例えば、 A→B⇔C のような場合、AからBへの参照を切ったとしてもBやCは永遠にメモリ上に存在してしまうということになるのでしょうか。 また、 A→B→C のような場合にAからBへの参照を切った時は、Bが廃棄され、それに応じてCも廃棄されると期待して良いのでしょうか。 図などが解りにくいかもしれませんが、よろしくお願いします。
回答: >AからBへの参照を切った時は、Bが廃棄され、それに応じてCも廃棄されると期待して良いのでしょうか いいえ。 GCの対象にはなっても、 GCが実際に行われるかどうかは、VMの実装次第です。