equals与==的应用


一、值类型

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

int  a = 10;

int  b = 10;

if(a==b)

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

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


 

二、引用类型

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

Student  s1 = new Student();

Student  s2 = new Student();

Student  s3 = s1;

if(s1==s3)

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

 



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


三、引用类型

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

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

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



 

升级例子:

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



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



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



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

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

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




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值