JVMの起動時に、OSがメモリを割り当て、そのメモリがヒープとスタックとして使用されます。ヒープ内にオブジェクトを作成すると、JVMの終了後にオブジェクトはどうなりますか? JVMが再起動するとOSは静かにそこにとどまり、OSはそのメモリを再割り当てしますか?それとも何か他のことが起こるのですか?JVMの終了時にヒープ内のオブジェクトはどうなりますか?
1
A
答えて
2
ほとんどのオブジェクトは、単に「蒸発」、彼らは場所を取る(ファイナライズを含む)は、通常のガベージコレクションプロセスなしで消えます。これらのオブジェクトがオープンファイルのようなOSリソースを表す場合、それらのリソースは解放(クローズ)されますが、未処理のデータがすべて解放されることは保証されません(あなたが自分でcloseをしたときに起こります)。
一般的に、プロセスが終了すると、通常のスタックとヒープメモリはすべてOSによって即座に解放されますが(実行可能ファイルやその他の読み込まれたファイルの格納に使用されるようなものもあります)それらのファイルを必要とする他のプロセスのために使用されます)。例外にはプロセス間通信に使用されるshared memoryのようなものがあります。これはおそらく知らないうちに使用していない可能性があります。
1
ヒープ内のオブジェクトは、JVMが終了すると(ほとんどの場合)解放されます。
私が言う理由ほとんどの場合、はヒープを解放するのがオペレーティングシステムの責任であり、JVMだけではないためです。オペレーティングシステムは、リースのためのメモリ割り当てをクリーンアップし、使用可能にするための努力をしています。しかし、これはまた、オペレーティングシステムに依存します。私はそこには、この主流の方法に従わないオペレーティングシステムがあると確信しています。 JVMが — すなわちを終了すると
関連する問題
- 1. アプリケーション終了時にwebviewのクッキーはどうなりますか?
- 2. サブルーチン終了時にプライベートバールはどうなりますか?
- 3. Qtでは、スレッドが終了するとオブジェクトはどうなりますか?
- 4. ServerSocketの終了時にどうなるのですか
- 5. Eclipseは(JVMが終了し、終了コード= 1。)起動しない
- 6. AndroidデバイスモニタJVM終了終了コード2
- 7. voidメソッドの終了時に返り値はどういう意味ですか?
- 8. JVM/GCはプログラム/スレッド終了時に `finalize()`を呼び出しますか?
- 9. JVMはヒープをスワップしますか?
- 10. アプリケーション終了時にアダプタ内のAlertDialogを終了する
- 11. コンソールは終了時にconsole.readline()で瞬時に終了します
- 12. アプリケーションの終了時にMediaProjectionオブジェクトが失われないようにします。
- 13. SpecFlow WebDriver WebDriverの終了時または終了時のエラー
- 14. オブジェクトがヒープ内部にあるかどうかを調べる
- 15. デーモンスレッドが完了しないうちにJVMが終了しない
- 16. JVMはデーモンスレッドをどのように終了させますか?または正常に終了するデーモン・スレッドを作成する方法
- 17. IBM RADは "JVMが終了コード8096を終了し、"
- 18. Linuxコンテキストスイッチの内部:プロセスがタイマー割り込みの前に終了するとどうなりますか?
- 19. perlスクリプトが終了するとどうなりますか?
- 20. 開始オブジェクトから終了オブジェクトまでのデータベース内のオブジェクトをループします
- 21. デシリアライズ時にオブジェクトにはどうなりますか?
- 22. スレッドが終了したらどうなりますか?
- 23. Javaスクリプトの終了に時間がかかります
- 24. JavaはどのようにJava内の終了コードをキャッチできますか?
- 25. プログラム終了時に頂点バッファオブジェクトを削除できない場合はどうなりますか?
- 26. エンコーディング時にNSArrayオブジェクトはどうなりますか?
- 27. JFrameにアクセス中にJVMが終了コード1で終了しました
- 28. Android - アニメーション終了時にアクティビティを終了しますか?
- 29. jquery.jmslideshow.js終了するにはどうすれば終了するのですか
- 30. JVMはどこにオブジェクトを割り当てますか
通常、プロセスが終了すると、オペレーティングシステムの仮想メモリマネージャは、プロセスによって割り当てられたすべてのメモリを再利用します。この場合、プロセスはちょうどJVMになります。他のプロセスと違いはありません。 –