effective java ch03 09 覆盖equals时总要覆盖hashCode