Javaガベージコレクタでは、参照のないオブジェクトのクリーニングが行われます。私は単独リンクされたリストの頭がヌルに設定されているのか疑問に思っていました。次のリストノードへの参照がないので、ガベージコレクタはそれをマークして完全なリストをトラバースする必要はありません?headがjavaでnullに設定されていると、リンクリストが削除されますか?
0
A
答えて
1
生きているオブジェクトのガベージコレクションチェック。
オブジェクトの中にはそのリストへの参照を保持しているものの、リスト(およびそのすべてのメンバーは生きています)です。
リストへの参照が存在しなくなった場合。例えば、それをヌルに設定することによって。あなたのリストオブジェクトはもはや生きていません。したがって、ガベージコレクションの対象になります。
あなたのリストにも同じことが適用されます。したがって、そのリストが要素への参照を保持する唯一の場所であった場合、その要素は、リストが「無効化」された後も、それ以上生存していません。その後、リスト要素も収集できます。しかし、リスト要素を参照するその他の生きているオブジェクトがある場合、リスト要素はそのままです。リスト自体は収集されますが。
つまり、ガベージコレクタのように考える必要があります。どのオブジェクトが生存しているかを理解してください。他の何もかも重要ではない。
0
はい。実際、たとえリストが循環していても、リストの外側の任意のリスト要素へのライブ参照がない限り、ガベージコレクションされます。詳細については、hereを参照してください。
関連する問題
- 1. 設定されているコントロールが削除された場合、イベントハンドラは削除されますか?
- 2. セルが削除されると、UITableViewCellsのテキストラベルがセルに設定されます。
- 3. リンクリストに格納されたCFGからのNullプロダクションの削除
- 4. Cookieが設定されていますが、document.cookieがnullです
- 5. Android:ListViewセレクタがnullに設定されていますか?
- 6. git conflict - HEADでファイルが削除され、リビジョンで修正されました
- 7. Java - なぜ静的変数がnullに設定されていますか?
- 8. PHPクッキーが自動削除されているか、頻繁にAJAXリクエストで設定されていません
- 9. NHibernate - 参照されたオブジェクトが削除されたときに外部キーをnullに設定する
- 10. Unity3dプロジェクトでgitを設定すると、ライブラリが除外されたときにオブジェクトが削除される
- 11. 変数は設定されていますが、nullが返されます
- 12. 値が設定されていないときに入力を削除する
- 13. 著者がDrupal 7で空白に設定されていると、ノードが削除される
- 14. グループが削除されてもファブリックベータグループエイリアスが削除されない
- 15. ボタン要素がnullに設定されている場合、それに追加されたクリックリスナーは削除されますか?
- 16. ノードはリンクリストでどのように削除されますか?
- 17. アプリケーションアップデートによって設定が削除される
- 18. Spring MVC + AngularJs:JSON /モデル値がnullに設定されています
- 19. Boost Python:ポインタがnullに設定されています
- 20. Tastypie外部キーがnullに設定されています
- 21. Tastypie外部キーがnullに設定されています
- 22. optargがnullに設定されています
- 23. ウィンドウオブジェクト上でlocalStorageがNULLに設定されている(qtwebkit 2.3.5)
- 24. Javaでプロパティファイルがnullとして返されています
- 25. 更新時にNPMグローバルパッケージ設定ファイルが削除されます
- 26. intはなぜですか?インスタンスプロパティがnullに設定されていますか?
- 27. クッキーが削除されています
- 28. アプリケーションを削除するとドキュメントフォルダが削除されますか?
- 29. ポストバックCSSの設定がmasterpageから削除されました
- 30. nullと値が設定されていない
実験では、大きなバイト配列のリストを作成してから、頭をヌルにして繰り返し実行すると簡単に判断できます。それがうまくいくなら、あなたは記憶を消さないでしょう。 – the8472