Javaでオブジェクトを手動で削除するにはどうすればよいですか? obj.delete()
またはobj.kill()
Javaでのメモリ管理
答えて
の世話をします。 Javaには特別なガベージコレクタがあります。オブジェクトに参照がないと、そのオブジェクトはガベージコレクタによってピックアップされ、破棄されます。 Learning Java Tutorialsから
:
ガベージコレクタ
そのオブジェクトへのより多くの 参照が存在しない場合、オブジェクトがガベージコレクションの対象 です。変数に保持されている参照番号 は、変数が になると通常は削除され、 になります。または、 変数を特別な値 に設定することで、オブジェクト参照を明示的に にドロップすることができます。プログラムは同じ オブジェクトへの複数の参照を 持つことができます。オブジェクト へのすべての参照は、オブジェクトがガベージコレクションの対象となる前に削除する必要があります。
Javaが非常に普及している主な理由の1つは、ガベージコレクションです。メモリの割り当てや割り当ての解除について心配する必要はありません。つまり、オブジェクトを取り除きたい場合は、オブジェクトへのすべての参照をnullに設定し、ガベージコレクタが実行されるとオブジェクトは破棄されます。
ファイル、ソケット、データベース接続などのリソースを閉じることについて心配する必要があります。そのためには、try/finallyブロックで行う必要があります。
"...いったんガベージコレクタがオブジェクトを実行すると、*は処分できます。" **すべての**対象オブジェクトが各コレクションで収集されることは保証されません。 –
オブジェクトを削除する方法はありません。 Javaのガベージコレクタは、オブジェクトに参照がなくなると自動的に実行します。
ただし、オブジェクトへの参照をすべて削除したら、System.gc()を呼び出してガベージコレクタを実行できます。メソッドのドキュメントを注意深く読んでください。削除のマークが付いたすべてのオブジェクトを削除するのに最善の努力を保証します。
また、私たちは手動で任意のオブジェクトを削除カント
Gosh .. * System.gc()がガベージコレクタを 'コール'しないことについてのコメントの氾濫を待っています* –
...誰かがSystem.gc()について言及しないことを望んでいました – Steve
私の答えを編集しました。私にこれに関する包括的なリンクを投稿してください。私はこの答えを削除します。その1つは次のとおりです。http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=/com.ibm.java.doc.diagnostics.60/diag/understanding/mm_gc_manual.html –
- 1. OpenGL、Java、メモリ管理
- 2. Javaメモリ管理:iOSスタイルのメモリ監視?
- 3. C++でのJavaスタイルのメモリ管理
- 4. Javaスレッドのメモリ管理の問題
- 5. Javaおよびメモリ管理のオブジェクトライフサイクル?
- 6. Java - メモリ管理/ DB接続の質問
- 7. C#(メモリ管理)の配列の管理
- 8. メモリ管理ios
- 9. CFSTRメモリ管理
- 10. メモリ管理addSubview:
- 11. iPhone:メモリ管理
- 12. UIViewメモリ管理
- 13. Netbeansメモリ管理
- 14. C#メモリ管理
- 15. CGMutablePathRefメモリ管理
- 16. UITableViewメモリ管理
- 17. アレイ、メモリ管理
- 18. MVC3メモリ管理
- 19. コアデータ - メモリ管理?
- 20. mipsメモリ管理
- 21. CPythonメモリ管理
- 22. iOSメモリ管理
- 23. OSメモリ管理
- 24. @properties - メモリ管理
- 25. AS3 - メモリ管理
- 26. ADBannerViewメモリ管理
- 27. iPhoneメモリ管理
- 28. ヒープスペース - メモリ管理
- 29. Rcppメモリ管理
- 30. 未管理オブジェクトのメモリ管理
これらの議論を経る必要があります! JVMは気をつけます – gmhk
あなたの答えははっきりしていますが、あなたが探していたものではないかもしれません。あなたが言及していない質問の背後に何かがありますか?なぜあなたはオブジェクトを削除する衝動を感じていますか?漏れに問題がありますか?詳しく教えてください。 –
Javaのような管理された言語の全体的なポイントは、オブジェクトを削除する必要がないということです。実際にこれを制御する必要がある場合は、非常に特殊なニーズがあります。だから私はHeffernanに同意する...なぜあなたはこれを行う必要があるかについてもう少し詳しく説明する必要があります。 – dm76