インスタンスフィールド、配列要素
オブジェクトへの参照がある場合、そのオブジェクトはガベージコレクションできません。特に、そのオブジェクト(およびその背後にあるグラフ全体)が大きい場合、ガベージコレクションを停止している参照は1つしかなく、その参照はもう必要ありません。これは不幸な状況です。
病理学的なケースは、それを構成するために使用されたXML DOMツリー全体への非必須インスタンスを保持するオブジェクト、登録解除されなかったMBean、またはクラスローダー全体がアンロードされないようにするアンデプロイされたWebアプリケーションからのオブジェクトへの単一参照。
したがって、参照自体を保持するオブジェクトがとにかく(またはそれでも)ガベージコレクションされることが確実でない限り、不要になったすべてのものをnullにする必要があります。
スコープ付き変数:
スコープの終了前にローカル変数をnullに設定して、ガベージコレクターによって再利用され、「今後は使用不可」とマークできるようにする場合は、代わりに、より限定されたスコープに配置することを検討してください。 。
{
  BigObject obj = ...
  doSomethingWith(obj);
  obj = null;          //   <-- explicitly set to null
  doSomethingElse();
}
なる 
{
  {  
     BigObject obj = ...
     doSomethingWith(obj);
  }    //         <-- obj goes out of scope
  doSomethingElse();
}
長くて平らなスコープは、一般的にコードの読みやすさにも悪影響を及ぼします。その目的のためだけに物事を分割するプライベートメソッドを導入することも、前例のないことではありません。