java中的.equals和==之间的区别(在内存中)

时间:2014-12-20 22:27:19

标签: java

希望更好地了解java中的.equals vs ==

特别是我很好奇这些在内存级别的表现如何?

到目前为止我所阅读的所有内容都指出==查看对象是否引用相同的内存位置,而.equals将比较给定内存位置内对象的内容。

比较内容与实际内存位置有什么好处?是否存在.equals==不同或反之亦然的情况?

1 个答案:

答案 0 :(得分:0)

是的,可能存在非常非常重要的差异。使用相同值创建的两个不同对象 not 通过引用相等,但您仍然经常想要查看它们是否代表相同的逻辑值。例如:

Point a = new Point(0, 0);
Point b = new Point(0, 0);
System.out.println(a == b);      // prints 'false'
System.out.println(a.equals(b)); // prints 'true'