私は、大きくて多くのオブジェクトを含むことができるセグメントを持つ GUI を備えたプログラムを持っています。私のプログラムの機能の 1 つは、そのセグメントを「閉じて」新しいセグメントを作成することです。
このセグメント全体は、たった 1 つの JPanel と ArrayList によってプログラムに関連付けられます。これら 2 つを破棄/null に設定すると、JPanels の子 (そのうちの 1 つは GUI コンポーネントを拡張する複雑なオブジェクトですが、多くの変数も含まれています) のいずれにもアクセスできなくなります。
私が正しければ、すべての JPanels の子供たちはガベージ コレクターによって収集されます。
しかし、子供たちの子供たちはどうなりますか?私には、5〜6世代の「家族」がいます。それらは GC の 5 回目 (または 6 回目) のパスでのみ削除されますか、それとも「ファミリー」全体がアクセス不能として検出され、一度に (または最初のパスで) 収集されますか?
編集:もう1つの小さな質問:swingコンポーネントのすべての子を削除する方法はありますか?