==运算符确定2个引用是否指向同一对象。
所以
Object o1 = new Object(); Object o2 = o1; o1 == o2; //true o2 = new Object(); o1 == o2 // false
Object.equals()方法是“如何确定对两个不同对象的引用是否相等?”
如果两个引用指向同一对象,则两者
o1 == o2 o1.equals(o2)
应该是真的。
但是,如果o1和o2不是同一对象,则它们在逻辑上仍 可能
相等。对于任何给定的类,均等取决于对象背后的语义。例如,考虑一个类,其中用户设置了field1和field2,但计算了field3并对其计算具有随机元素。在这种情况下,定义等于仅取决于field1和field2而不是field3可能是有意义的。这就是为什么平等是必要的。



