0

ガベージコレクターは、不要な未使用のオブジェクトをすべて破棄することが保証されています。たとえば、オブジェクトを手動で無効にするとどうなりますか。List <String> = null、このアクションはパフォーマンスにマイナスまたはプラスの影響を与えますか?

私はJavaを使用しています。ありがとう。

4

3 に答える 3

1

明示null的に指定しても、ほとんどまたはまったく違いはありません。通常、GC は、オブジェクトに到達できなくなった時点を確実に検出できるため、GCd を実行できます。

特に、nullスタック (つまり、メソッド内) 変数を使用しても、まったく役に立ちません。ランタイムが必要な場合とそうでない場合を自動的に検出するのは簡単です。nullヒープ (つまり、クラス内) 変数使用すると、まれに役立つ場合がありますが、これはまれな例外であり、おそらく (コードの読みやすさ/保守性において) 良いことよりも悪いことになります。

また、 ing は、オブジェクトが GCd されるかどうか、またはその時期を保証nullしないことに注意してください。

于 2012-04-05T10:34:58.357 に答える
1

メモリ処理の詳細については専門家ではありませんが、知っていることを共有できます。GC は、使用されていないものをすべて収集します。したがって、オブジェクトへの最後の参照を (明示的に無効にすることによって) 削除すると、ガベージ コレクションの対象としてマークされます。これは、すぐに収集されることを保証するものではありません。

明示的に GC を試して呼び出すことはできますが、GC に反対するアドバイスをする人がたくさんいます。私の理解では、GC への呼び出しはせいぜい信頼性が低いということです。GC と Java の全体的なポイントは、プログラマーとしてメモリ割り当てについてあまり心配する必要がないということです。パフォーマンスに関しては、ヒープ スペースに厳しい制限がない限り、GC アクティビティに気付かないはずです。

于 2012-04-05T10:32:22.027 に答える
1

ガベージ コレクションは、Java が徘徊するオブジェクトによって占有されているスペースを再収集する方法です。そうすることで、[Java] はアプリケーションがメモリ不足にならないようにします (ただし、プログラムがメモリ不足になるとは保証できません)。

JVM に残すことをお勧めします。

関連を読む:Javaオブジェクトをnullに設定すると、もう何もしませんか?

于 2012-04-05T10:33:49.697 に答える