7

Java のリソースは、使用後に閉じる必要がある、またはこれらのリソースが使い果たされるといつも聞いていました。非常に少ないリソース (1 つまたは 2 つのファイル リーダー/バッファー リーダーなど) を使用する小さなプログラムにとって、それは本当に懸念事項ですか? JVM は、プログラムによって使用されているリソースを追跡しませんか? そして、プログラムが終了すると、それらすべてのリソースが解放されませんか? そうでない場合、プログラムの終了後も JVM がこれらのリソースをブロックしたままにするのはなぜですか?

4

4 に答える 4

3

OS はプロセスの終了後にこれを処理する可能性があるため、小規模なプログラムではリソース リークが発生する可能性があります。しかし、これは非移植性と見なされます。

より大きな問題は、JVM が実行されている OS が、リモート マシンに割り当てられたリソースを解放する方法や、解放する必要のあるリソースが割り当てられているかどうかを認識できないことです。

于 2013-09-06T10:46:40.873 に答える
2

JVMプロセスが終了した後、JVMプロセスに割り当てられたリソースを解放するのはJVMではなくOSです。

于 2013-09-06T09:39:14.503 に答える