谈谈equals()、hashCode 为什么在重写equals()方法的时候需要重写hashCode方法? 因为有强制的规范指定需要同时写hashCode和equals方法。许多容器类,如HashMap、HashSet都是依赖于hashCode和equals的规定 有没有可能两个不相等的对象有相同的hashCode? 有可能,两个不相等的对象可能会有相同的hashCode值,这就是为什么在HashMap中会有冲突。相等hashCode值的规定只是说如果两个对象相等,必须有相同的hashCode值,但是没有关于不相等对象的任何规范 两个相同的对象会有不同的hashCode吗? 不能,根据hashCode的规范,这是不可能的