hashcode与equals以及‘=’

  1. hashcode的计算方式
    把对象内每个有意义的Field计算出一个int类型的hashCode值:
类型 计算方式
Boolean hashCode=(f?0:1)
整数类型(byte short int char) hashCode=(int)f
long hashCode=(int)(f^(f>>>32))
float hashCode=Float.floatToIntBits(f)
double long l = Double.doubleToLongBits(f); hashCode=(int)(l^(l>>>32))
普通引用类型 hashCode=f.hashCode()
  1. equals 比较的是对象的内容
  2. ‘=’比较的是对象的内存地址
注意:equals相等的,hashcode一定相等,反之,hashcode相等,equals不一定相等