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

猜你喜欢

转载自blog.csdn.net/qb170217/article/details/81776546