ここで、Javaガベージコレクターに関していくつか質問があります。Java GC.
GCまず、JVMの起動時に、バックグラウンドスレッドが常にバックグラウンドで実行されることについて理解したことを明確にしておきます。各オブジェクトには1つのfinalize()メソッドがあります。このメソッドは、オブジェクトが破棄される前にシステムリソースを解放するために使用されます。Javaの専門家によると、システムリソースを解放するためにリソースをfinalize()メソッドの下に置くべきではありません。GCがいつ実行されるかを確認できないためです。ただし、をGC呼び出すことで実行を要求できSystem.GC()ます。
だから今私の質問は、GCバックグラウンドスレッドは常にバックグラウンドで実行されるということです。さて、いつ実行されるかわからないとどうやって言うことができGCますか?このような発言"we dont know when the GC will call finalize() method "
ですかそれはその意味ですか?それが彼らの意味するところなら、その仕事はGC何ですか?GC未使用の変数を見つけてメモリから削除する責任。その場合、なぜGCfinalize()メソッドも呼び出せないのですか?