这是我要比较的课程:
public class test
{
private String str=null;
private int integer=0;
private double doubleNum=1.1;
}
现在我通过实例化两个相同的类来比较它
public class testEquals
{
public static void main(String[] args)
{
test s1 = new test();
test s2 = new test();
System.out.print(s1.equals(s2));
}
}
结果是
假
答案 0 :(得分:8)
您的test
课程未覆盖equals
,因此会继承the method from Object
:
类Object的equals方法实现了对象上最具辨别力的等价关系;也就是说,对于任何非空引用值x和y,当且仅当x和y引用同一对象时,此方法才返回true(x == y的值为true)。
它们不是同一个对象,因此返回false
。
答案 1 :(得分:2)
查看您正在调用的Object.equals(),您将看到默认实现是使用==比较对象,这基本上是比较地址。