【通俗易懂】equals 与 == 的区别

值类型(int,char,long,boolean等)都是用==判断相等性。对象引用的话,==判断引用所指的对象是否是同一个。equals是Object的成员函数,有些类会覆盖(override)这个方法,用于判断对象的等价性。例如String类,两个引用所指向的String都是”abc”,但可能出现他们实际对应的对象并不是同一个(和jvm实现方式有关),因此用==判断他们可能不相等,但用equals判断一定是相等的。

总结

1、==操作符既可以用于比较基本的数据类型,也可以用于比较对象,而equals只可以用于对象之间的比较

2、在比较String类型的对象时,==操作符的原理只有两个变量是同一对象的引用时才会返回true,而equals方法只要两个变量的内容相同则返回true

3、其他类型的对象进行比较时,equals方法默认的原理是判断两者的内存地址是否相同,所以默认情况下与==操作符返回的结果相同,但是这里应该发现差别,也就是equals方法可以被重写—用户可以定制自己的equals方法,而==操作符不能被重写

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值