关于==与equals()方法的区别

首先说==,==是运算符,基本数据类型和应用数据类型都能用,基本数据类型比较的是值是否相同,引用数据类型比较的是地址是否相同。

与==不同,equals是方法,在object类中定义,只能由对象调用,而不能用基本数据类型变量调用
一般自己写的类还有其他非特殊类的对象,比较的都是地址,只有特殊的如String比较的就是内容。

但是开发中经常想比较两个对象的内容是否相同,现在就需要在此类中对equals方法进行重写。
String等部分引用数据类型用equals比较之所以比较的是内容而不是地址,是因为系统本就已经对他们进行重写过了。

创建a p这两个对象
重写先判断两个对象的地址是否相同,相同直接返回true. 地址相同表示就是同一对象,内容肯定也相同,如果地址不同然后用instanceof判断需要比的对象看对象p是不是a对象所属类的一个实例,如果不是,返回false,如果是将p强转为a对象所属类的类型,然后分别调属性方法比较是否相同,这里注意比较的时候区分equals和==的时机,如果都相同返回true不同就是false。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值