java中hashCode和identityHashCode的区别

  1. hashCode方法和equals方法都是Object类里的方法,其他类的是可以重写的,所以用的时候一定要弄清楚有没有被重写,不然很容易弄错

  2. Object类中equals方法只有引用变量指向同一个对象时才返回true,而String类中放宽了要求,对象里的值相等也返回true

  3. Object类中的hashCode方法会返回一个hash码,只有指向同一个对象的引用变量调用才会返回相同值,而String类中放宽了要求,对象里的值相等也返回相同值

  4. identityHashCode方法是System类中的方法,调用该方法时,不管类中是否重写了Object类中的hashCode方法,都执行Object类中的hashCode方法,返回一个hashCode值。所以只有指向同一个对象的引用变量调用才会返回相同值

identityHashCode永远返回根据对象物理内存地址产生的hash值,所以每个String对象的物理地址不一样,identityHashCode也会不一样

 

https://www.cnblogs.com/godtrue/p/6395098.html

https://blog.csdn.net/Black_carbon/article/details/81589108

https://blog.csdn.net/moakun/article/details/80165148

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值