Java 类、对象、static成员详解( 八 )

equals()

输出结果为:

运行结果

由此可看出 , 使用对象的equals()方法是能正确比较对象的值的 , 因为Integer已经自定义了equals方法了 , 下面是源码:

Integer的equals()方法

不难发现 , Integer的equals()方法的底层是使用基本数据类型的值做==比较的 。

如果是我们自定义的类 , 而且没有重新定义equals()方法呢 , 结果又会是怎样的 , 一起来看看:

没有重新定义equals()方法

输出结果为:false 。

因为在Java中 , 有一个所有引用类型都直接或者间接继承的父类 , Object;因此 , 也可以说在java中 , 所有类都是Object的子类 , 那么 , 如果我们没重新实现equals()方法 , 会默认调用Object的equals()方法 , Object的equals()方法比较的是对象的引用 , 所以结果输出为false 。

推荐阅读