ガベージコレクターは、不要な未使用のオブジェクトをすべて破棄することが保証されています。たとえば、オブジェクトを手動で無効にするとどうなりますか。List <String> = null、このアクションはパフォーマンスにマイナスまたはプラスの影響を与えますか?
私はJavaを使用しています。ありがとう。
ガベージコレクターは、不要な未使用のオブジェクトをすべて破棄することが保証されています。たとえば、オブジェクトを手動で無効にするとどうなりますか。List <String> = null、このアクションはパフォーマンスにマイナスまたはプラスの影響を与えますか?
私はJavaを使用しています。ありがとう。
明示null
的に指定しても、ほとんどまたはまったく違いはありません。通常、GC は、オブジェクトに到達できなくなった時点を確実に検出できるため、GCd を実行できます。
特に、null
スタック (つまり、メソッド内) 変数を使用しても、まったく役に立ちません。ランタイムが必要な場合とそうでない場合を自動的に検出するのは簡単です。null
ヒープ (つまり、クラス内) 変数を使用すると、まれに役立つ場合がありますが、これはまれな例外であり、おそらく (コードの読みやすさ/保守性において) 良いことよりも悪いことになります。
また、 ing は、オブジェクトが GCd されるかどうか、またはその時期を保証null
しないことに注意してください。
メモリ処理の詳細については専門家ではありませんが、知っていることを共有できます。GC は、使用されていないものをすべて収集します。したがって、オブジェクトへの最後の参照を (明示的に無効にすることによって) 削除すると、ガベージ コレクションの対象としてマークされます。これは、すぐに収集されることを保証するものではありません。
明示的に GC を試して呼び出すことはできますが、GC に反対するアドバイスをする人がたくさんいます。私の理解では、GC への呼び出しはせいぜい信頼性が低いということです。GC と Java の全体的なポイントは、プログラマーとしてメモリ割り当てについてあまり心配する必要がないということです。パフォーマンスに関しては、ヒープ スペースに厳しい制限がない限り、GC アクティビティに気付かないはずです。
ガベージ コレクションは、Java が徘徊するオブジェクトによって占有されているスペースを再収集する方法です。そうすることで、[Java] はアプリケーションがメモリ不足にならないようにします (ただし、プログラムがメモリ不足になるとは保証できません)。
JVM に残すことをお勧めします。