2012-04-05 6 views
0

ガベージコレクタは、望ましくないオブジェクトや使用されていないオブジェクト(すべて )を破棄します。リスト<ストリング> = null、 このアクションは、マイナスまたはプラスのパフォーマンス効果をもたらしますか?リソース処理の実践

私はJavaを使用しています。おかげさまで

答えて

1

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

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

1

ガベージコレクションは、Javaオブジェクトが占有している領域をJavaで回収する方法です。そうすることで、[Java]は、あなたのアプリケーションが決してメモリ不足にならないようにします(ただし、プログラムのメモリが不足することはありません)。

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

読む:Does setting Java objects to null do anything anymore?

1

明示null ingがほとんど、あるいはまったく違いになります。通常、GCはオブジェクトに到達できなくなったときに確実に検出することができ、したがってGCdになることができます。

特に、スタック(つまり内部メソッド)変数は、まったく役に立たない。ランタイムが必要なときとそうでないときを自動的に検出するのは簡単です。 nullヒープ(つまり内部クラス)変数は、まれな例ではになる可能性がありますが、これはまれな例外で、コードの読みやすさ/保守性の面でより良い影響を与えます。

nullは、保証はありません。オブジェクトがGCdの場合、またはそのときに保証されます。

関連する問題