这是为了方便比较数据 假如学生A和学生B 年龄,性别,体重都一样,但是地址不一样,理论上是相同的对象,那么重新equals 就是去比较年龄,性别,体重是否都一样,(基本数据类型.equeal地址和value肯定一样),但是这时间hashCode值会不一样.那我们也去重新hashCode.利于这三个值得hashCode 相乘或者相加值,作为一个hashCode. 这时候如果你往set里面 hashSet取存储,会默认删除一个,因为底层时间就是根据hashCode去重,同理HashMap 如果key也是根据hashCode来保持唯一的