-
hashCode方法和equals方法都是Object类里的方法,其他类的是可以重写的,所以用的时候一定要弄清楚有没有被重写,不然很容易弄错
-
Object类中equals方法只有引用变量指向同一个对象时才返回true,而String类中放宽了要求,对象里的值相等也返回true
-
Object类中的hashCode方法会返回一个hash码,只有指向同一个对象的引用变量调用才会返回相同值,而String类中放宽了要求,对象里的值相等也返回相同值
-
identityHashCode方法是System类中的方法,调用该方法时,不管类中是否重写了Object类中的hashCode方法,都执行Object类中的hashCode方法,返回一个hashCode值。所以只有指向同一个对象的引用变量调用才会返回相同值
identityHashCode永远返回根据对象物理内存地址产生的hash值,所以每个String对象的物理地址不一样,identityHashCode也会不一样
https://www.cnblogs.com/godtrue/p/6395098.html