希望更好地了解java中的.equals
vs ==
特别是我很好奇这些在内存级别的表现如何?
到目前为止我所阅读的所有内容都指出==
查看对象是否引用相同的内存位置,而.equals
将比较给定内存位置内对象的内容。
比较内容与实际内存位置有什么好处?是否存在.equals
与==
不同或反之亦然的情况?
答案 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'