
- 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() |
- equals 比较的是对象的内容
- ‘=’比较的是对象的内存地址
注意:equals相等的,hashcode一定相等,反之,hashcode相等,equals不一定相等




近期评论