object.equals方法和java中的==之间的区别

时间:2013-06-22 05:51:47

标签: java

If I have two reference object with different name in main class Such as:

AA aa = new AA();
AA bb = new AA();

and if i compare it using aa.equals(bb); then what it will return. 

and if i will use 

BB bb = new BB();

and i compare it using aa.equals(bb);

Then what is difference both of them

我总是混淆对象的空行为。

1 个答案:

答案 0 :(得分:3)

运算符==,测试两个对象引用变量是否引用对象的完全相同的实例。

方法.equals(),测试两个对象是否相互比较 - 但它们不必是同一对象的完全相同的实例。

示例#1:

Integer i = new Integer(10);
Integer j = i;

在上面的代码中。 i == j为真,因为ij都指向同一个对象。

示例#2:

Integer i = new Integer(10);
Integer j = new Integer(10);

在上面的代码中,i == j为false,因为尽管它们都具有值10,但它们是两个不同的对象。

此外,在上面的代码中,i.equals(j)是正确的,因为虽然它们是两个不同的对象,但它们相当于它们代表相同的数字,10。