浅谈Java中equals和==的区别

equals和==都是Java中判断相等的方法,但二者的使用场景有所不同。

==

==一般用于判断基本数据类型值是否相等。

基本数据类型:Byte,short,int,long,float,double,boolean,char。

若用在引用类型上时,会判断引用类型所指向的地址是否相等,只要地址不等即不满足==条件。

可以理解为==比较的是"浅层"的值(地址也是值)。

equals

对于自定义的类,在重写equals方法之前,equals方法继承于Object类,equals方法的作用等价于==,判断的是地址,若使用Java默认的重写equals方法,则会判断类中的各个成员变量的值是否相等,用户也可根据自己需要重写自己的equals方法。

Java中的很多库类都重写了equals方法,例如包装类Integer,重写的equals方法用于判断值而非地址是否相等。

此外,在使用equals方法时要注意避免null引用,例如定义了一个类没有赋值,即null,这时候调用equals方法会报错。若要避免这种错误可使用Objects.equals(A, B)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值