==与equals()方法之间的区别

今天在背八股文的时候见到这题,第一眼:简单送分题;再看一眼:好像不太理解。。。

兄弟们引以为戒,切勿眼高手低。

==:如果是基本数据类型,⽐较是值,如果是引⽤类型,⽐较的是引⽤地址
               基本数据类型:byte,short,int,long,float,double,boolean
               引用数据类型:比较堆内存中的地址是否相同
equals:具体看各个类重写equals⽅法之后的⽐较逻辑,⽐如String类,虽然是引⽤类型,但是
String类中重写了equals⽅法,⽅法内部⽐较的是字符串中的各个字符是否全部相等。

               equals方法是Object类的一个方法,Java当中所有的类都是继承于Object这个超类。
JDK1.8 Object类equals方法源码如下,即返回结果取决于两个对象的使用==判断结果

public boolean equals(Object obj) {
    return (this == obj);
}

                 但是在日常使用中,类经常会重写equals方法;比如:String类,虽然是引⽤类型,但是String类中重写了equals⽅法,⽅法内部⽐较的是字符串中的各个字符是否全部相等。

总结:

 == 的作用:
  基本类型:比较值是否相等
  引用类型:比较内存地址值是否相等

equals 的作用:
  引用类型:默认情况下,比较内存地址值是否相等。可以按照需求逻辑,重写对象的equals方法。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值