-1

这个问题可能有点含糊,但是谁能给我一个完整的解释,说明引用相等和对象相等之间的区别是什么?

4

2 回答 2

0

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

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

于 2013-08-26T22:58:38.047 回答
0

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

因此,对象可能同时具有价值和位置。

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

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

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

于 2013-08-26T23:09:25.913 回答