This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
because it is not the same object but a clone... remember: == checks if the reference points to the same object in memory, equals() checks if the objects are having the same state.
if firstObj == secondObj would be true, then the clone operation would actualy just return a reference to itself... which is not the intent. clone() should return a new object with the same state as the object you called clone() on.