平等与差异的区别对象平等

时间:2013-08-26 22:47:56

标签: equality

这个问题可能有点模糊,但任何人都可以给我一个完整的解释 引用相等和对象相等之间的区别?

2 个答案:

答案 0 :(得分:0)

通常,引用相等性表示两个指针指向同一地址。对象相等性将是具有相同数据的不同内存区域中的两个对象。

说两个指针都指向同一个对象,两个对象是彼此的精确副本之间的区别。

答案 1 :(得分:0)

在像Java这样的面向对象语言中,对象是包含状态和行为的数据结构。对象的状态由其内部数据字段的值确定,其行为由为对象定义的方法(函数或过程)确定(通常在对象的内部字段上操作 - 但不一定) 。始终通过引用访问对象。也就是说,变量保存指向对象内存位置的指针。

因此,物体可能同时拥有价值和位置。

Equality 测试两个对象是否具有相同的“值”(由对象的内部状态定义),即“这两个对象具有相同的值吗?”

身份测试对象的两个引用是否相同,即“这两个对象是同一个对象(在内存中的同一位置)吗?”

你会注意到,如果对象在不同的​​内存位置是不同的结构,那么对象可能具有完全相同的值但具有不同的身份。两个对象引用永远不可能具有相同的标识(即,在内存中引用相同的数据结构),但不同的值。