title: java.lang.Object.equals() what was the intention?
body: <p>What do you think the primary motive for putting the <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals%28java.lang.Object%29" rel="nofollow"><code>equals</code></a> method in <code>java.lang.Object</code> is?  Most of the implementations that we override it with are domain-centric, i.e. in model classes. I'm yet to see an implementation of <code>equals</code> in a factory class or something equivalent.</p>
  
  <p>My conclusion is that it was primarily put in to support the Java Collection API, so that it could deal with any <code>Object</code>.  Else, it could have been left to be defined by specific domain designs.</p>
  
  <p>PS: I know this thread may be more discussion oriented, but did not where else to get insight into this. I have tried to search far and wide for the answer to this, but always land up in discussions or explanations as to the difference between <code>==</code> and <code>equals</code> or the best practices of writing equals.</p>