对以上两个实例的总结
- 对可变类型,实现行为等价性即可(即不需要重写equals方法和hashcode方法,也就是说,只有指向相同地址空间的对象才是相等的)
- 如果 一定要判断两个可变对象是否看起来一致,一定要定义一个新的方法
- 对于不可变对象而言,equals方法应该比较的是抽象的值。这也相当于行为等价性(没有变值器)
—所以对于不可变对象而言,必须重写equals方法和hashcode方法
有关克隆

自动封装和等价性
- 原始数据类型和他们的对象数据类型的等价性。如图所示:

- 但是x==y是不成立的(因为x与y的引用是不同的)
- 但是(int)x == (int)y是成立的吗?(强制类型转换!YES!!)
- 一个典型实例如图所示(自动装箱和等价性):

- 一种特殊的情况

- 实际测试结果如图所示:
本文探讨了可变和不可变对象在等价性判断上的区别,指出对于可变对象,仅当指向同一内存地址时才认为相等,而不可变对象则通过值进行比较。在不可变对象中,需要重写equals和hashcode方法。此外,还讨论了克隆的概念以及原始类型和对象类型的等价性,包括自动装箱和强制类型转换的影响。
1422

被折叠的 条评论
为什么被折叠?



