关于等价性的分类
java中的对象分为immutable的和mutable的对象,课上说不可变对象的等价性分为引用等价性和对象等价性,可变类型分为观察等价性和行为等价性
私以为对于所有对象都分为引用等价性和对象等价性
引用等价性就是 ==
对象等价性就是 equals
然后只是对于可变类型的对象的equals实现起来比较复杂,所以在实现equals的思路又分了两种观察等价性和行为等价性
观察等价性:在不改变状态的情况下,两个mutable对象是否看起来一致
但是在集合类有关hashcode的时候可能会出现问题
行为等价性:调用对象的任何方法都展示出一致的结果
其实就是继承Object.equals(),实现方式也是用“==”