==与equals的区别

本文探讨了Java中==和equals的区别,指出前者比较对象的内存地址,后者默认行为与==相似,但某些类如String、File和Date等重写了equals方法,使其比较对象内容。重写equals通常是为了实现根据类中属性判断对象是否相等的功能。
摘要由CSDN通过智能技术生成

==:

它是判断两个对象的地址是否相等。也是说这两个对象是不是同一个对象。基本数据类型==比较的是值,引用数据类型==比较的是内存的地址。

equals:

Object的equals等价与==,下面看一下源码

既然如此,那为什么面试题会问这个问题呢?

是因为有部分类重写了equals方法。

例如String类

 例如File类

例如Date类等等

 以上类都继承了Object的equals方法,并进行了重写,所以以上类的equals方法的功能都是根据重写方法中内容来决定的,一般情况下会将equals重写为类中相应属性是否相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值