张学永 发表于 2012-11-13 15:15
判断是否是同一个对象,又比较的是什么呢?应该是内存地址值吧?这个和哈希值又有啥关系呢?如果比较的是 ...
应该不是这样,因为你已经重写也就是覆盖掉了Object中的HashCode()方法,我刚百度了下,貌似是因为equals()比较的对象在内存中的地址,而HashCode()并不是代码对象在内存中的真正地址,只是按照对象在内存中的地址计算而来的一个值,所以你重写了HashCode()后,所以他们的哈希值相等了,但是两个对象在内存中的地址还是不同,所以equals()判断为两个不同的对象 |