Java ==与equals方法有什么区别

时间:2021-12-22 16:23:40

         Java程序中测试两个变量是否相等有两种方式:一种是利用==运算符,另一种是利用equals()方法。当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,就返回true。

但是对于两个引用类型变量,只有它们指向同一个对象时,==判断才会返回true。==不可用于比较类型上没有父子关系的两个对象。

        equals()方法是Object类提供的一个实例方法,使用这个方法判断两个对象相等的标准与使用==运算符没有区别,同样要求两个引用变量指向一个对象才会返回true。因此这个Object类提供的equals()方法没有太大的实际意义,如果希望采用自定义的相等标准,则可采用重写equals方法实现。


        我们可以从Java的源代码中看到,下面是Object类中的equals()方法:

Java ==与equals方法有什么区别

        

          如图是String类重写的equals()方法

Java ==与equals方法有什么区别