Because == tests the equality of the
reference, not the equality of the object data (that is what .equals() is for). The only way == is going to return true on
test of two object references is if both are simply different references to the same object.
In this case s1 == s2 returns true, but s1 == s3 returns false. They have equivalent data, but reference different objects. s1.equals( s2 ) and s1.equals( s3 ) both return true, because .equals() tests data equivalence.
[ August 09, 2003: Message edited by: Nathan Pruett ]