一、值类型

——没有equals方法,只有==

int  a = 10;

int  b = 10;

if(a==b)

   System.out.print(“值相等”);

“==”对于基本数据类型,判断两变量是否值相等。 ==运行速度更快。

equals与==的应用

 

二、引用类型

——==判断是否是同一个对象

Student  s1 = new Student();

Student  s2 = new Student();

Student  s3 = s1;

if(s1==s3)

   System.out.print(“s1和s3指向同一个对象”); 

 equals与==的应用equals与==的应用

equals与==的应用


a与b是两个不同的变量,虽然值相等,但在内存中占用两个不同位置,内存地址不同。


三、引用类型

——equals判断的是两者的内容是否相同

“equals”不能用于基本数据类型,只能用于类变量。

对于基本数据类型int要用其包装类Integer。

equals与==的应用

equals与==的应用

 

升级例子:

首先Student只有id和name两个属性,且没有重写equals方法

equals与==的应用

equals与==的应用

然后Student只有id和name两个属性,而且还重写了equals方法

equals与==的应用

equals与==的应用


此时得到的结果就变成了:

equals与==的应用

equals与==的应用

equals用来比较的是两个对象的内容是否相等,

所有的类都是继承自java.lang.Object类的,对于所有对象而言,调用的equals方法仍然是Object类中的,在Object类中equals方法与==等效。

所以此时需要重写equals方法。




 

相关文章: