Java对象的==和equals-Android面试准备2019-2-1

当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等就将返回true。但对于两个引用类型变量,只有它们指向同一个对象时==判断才会返回true。

但在很多时候,程序判断两个引用变量是否相等时,也希望有一种类似于"值相等"的判断规则,并不严格要求两个引用变量指向同一个对象。我们这里以String类型来举例代表引用类型变量,此时就可以利用String对象的equals()方法来进行判断。

equals()方法是Object类提供的一个实例方法,因此所有引用类型变量都可调用该方法来判断是否与其他引用类型变量相等。但这个方法要求两个引用变量指向同一个对象才会返回true(与==运算符比较的结果完全相同),因此这个Object类提供的equals()方法没有太大的实际意义,所以需要重写equals()方法来实现。当按照需求重写了equals()方法后(String类已经重写了equals()方法),就可以实现引用类型变量的"值相等"判断规则了。

Java对象的==和equals-Android面试准备2019-2-1_第1张图片
示例

你可能感兴趣的:(Java对象的==和equals-Android面试准备2019-2-1)