equals和==的区别

1、equals和==的区别

知识点举例

== 和 equals 的区别是什么

` == `比较对象比较的是地址,对于Object对象中的`equals` 方法使用的也是 == ,比较的是对象的地址,默认情况下使用对象的equals比较Object中的equals方法,也就是比较地址,如果要实现自己的比较方式需要复写equals 方法。

对于包装类比如:Integer都是复写过equals方法,比较的是int 值。

个人理解例子:

==:是运算符,如果是基本数据类型,则比较存储的值;如果是引用数据类型,则比较所指向对象的地址值。

equals:是Object的方法,在Object的方法中比较的是所指向的对象的地址值,一般情况下,包装类的equals方法都是重写过的,重写之后比较的是对象的值。

f4dc76256c4f488e9d2ea13d4f1d5499.png 

==:只有一个功能(比较地址值)

如果比较的对象没有被包装过,只是基本数据类型的话,比较的就是他们的值;

如果比较的对象是经过包装的(Integer、String等类型的),比较的就是他们的地址值,所以一般==也只用来比较基本数据类型;

也可以这样认为,基本数据类型的对象只要存放了数据之后,他们的地址值都是一个,所以==比较的都是同一个地址值;

equals(方法):有两个功能(比较地址值,比较值)

可以比较值也可以比较地址值,Object的equals方法里面是用的==进行的比较,如果是引用数据类型的话,比较的就是地址值;

如果是Integer等包装类进行比较的话,那么比较的就是他们的值,不是数据类型,因为Integer的equals方法是重写过的,不会直接比较两个地址值,而是比较值;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值