オブジェクトの二重リンク リストがあります。
class MyObject {
MyObject previousObject;
MyObject nextObject;
// Other fields and methods
}
このようなリストの最初のオブジェクトのみがアプリケーションに直接格納され、他のオブジェクトはこの最初のオブジェクトを介してアクセスされ、アプリケーションで一時的に使用されます (ただし、永続的な参照はリスト自体の外部に保持されません)。
オブジェクトを参照しなくなった場合、そのオブジェクトはガベージ コレクターによって収集されます。
しかし、(最初の) オブジェクトがまだリンクされたリストの「次のオブジェクト」によって参照されているため、これがまだ当てはまるかどうか疑問に思っていましたか? リストの残りの部分についてはどうですか? これらのオブジェクトも (相互に参照されていても) 収集されますか?
注: もう使用しない場合は、リスト内のすべての参照を削除できることを知っています。しかし、これはアプリケーションの性質上「困難」であり、追加の (不要な?) オーバーヘッドが発生します。