==、equals、hashCode区别?


【==equals()hashCode()区别?】

     1)== 运算符用来比较两个变量的值是否相等。

   即该运算符用于比较变量对应得内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==”运算符。

 

     2)equals Object类提供的方法之一。

   每一个Java类都继承自Object类,所以每一个对象都具有equals这个方法。

        Object类中定义的equals(Object)方法是直接使用“==”运算符比较的两个对象,所以在没有覆盖equals(Object)方法的情况下,equals(Object)与“==”一样,比较的是引用。

   相比==”运算符,equals(Object)方法的特殊之处在于它可以被覆盖,所以可以通过覆盖的方法让它不是比较引用而是比较数据内容,例如String类的equals方法是用于比较两个独立对象的内容是否相同,即堆中的内容是否相同,

 

    3)hashCode() 方法是从Object类中继承过来的,它也是用来鉴定两个对象是否相等

        Object类中的hashCode()方法返回对象在内存中地址转换成的一个int,所以如果没有重写hashCode()方法,任何对象的hashCode()方法都是不相等的。

 

   虽然equals()方法也是用来判断两个对象是否相等的,但是它与hashCode()方法有区别: equals()方法是给用户调用的

 





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值