title: The equals implementation in Object
body: <p>I was reading about the equals method in Java, and I heard people say that <code>==</code> tests for reference equality (whether they are the same object). <code>.equals()</code> tests for value equality (whether they are logically "equal"). </p>
  
  <p>I believe it is true but, If you look at the source code for <code>.equals()</code>, it simply defers to <code>==</code> </p>
  
  <p>From the Object class: </p>
  
  <pre><code>    public boolean equals(Object obj) {
      return (this == obj);
  }
  </code></pre>
  
  <p>Now I am confused. What I see is we are testing if the current object have the same reference to the explicit parameter. Does it test for reference equality or for value equality? </p>