title: In java ,what happens when renew a object?
body: <p>Given: </p>
  
  <pre><code>1. public class GC { 
  2.     private Object o; 
  3.     private void doSomethingElse(Object obj) { o = obj; } 
  4.     public void doSomething() { 
  5.         Object o = new Object(); 
  6.         doSomethingElse(o); 
  7.         o = new Object(); 
  8.         doSomethingElse(null); 
  9.         o=null; 
  10.     }
  11. }          
  </code></pre>
  
  <p>When the <code>doSomething</code> method is called, after which line does the <code>Object</code> created in line 5 become available for garbage collection? </p>
  
  <p>A. Line 5<br>
  B. Line 6<br>
  C. Line 7<br>
  D. Line 8<br>
  E. Line 9<br>
  F. Line 10<br></p>
  
  <p>The answer is D, and the explain is that when in line 7 new Object() won't new a new object it's just the object created in line 5. </p>
  
  <p>I'm very confused with this, any one can help me ?</p>