equals()方法和对象比较

时间:2018-12-12 05:31:15

标签: java equals equals-operator

我正在研究Java的基础知识,看到了equals()方法并编写了这段代码

public class EqualsTest {
public static void main(String[] args) {
    String str = new String("this");
    String str2 = new String("this");

    Object obj1 = new Object(6);
    Object obj2 = new Object(6);

    System.out.println(str == str2);
    System.out.println(str.equals(str2));

    System.out.println(obj1 == obj2);
    System.out.println(obj1.equals(obj2));
    }
}

还有这个。

public class Object {
public int num;

public Object(int num) {
    this.num = num;
    }

}

运行代码时,我得到的结果是

false
true
false
false

我能理解为什么我得到前两个结果。 (错误和正确) '=='运算符比较str和str2是否引用同一实例,equals()方法比较内部的实际值。

但是我不明白为什么我俩都错了

obj1 == obj2;
obj1.equals(obj2);

我想,因为它们都具有6值,

obj1.equals(obj2);

此行应该给出正确的结果。

有人可以解释一下吗?

谢谢。

0 个答案:

没有答案