这个问题可能有点模糊,但任何人都可以给我一个完整的解释 引用相等和对象相等之间的区别?
答案 0 :(得分:0)
通常,引用相等性表示两个指针指向同一地址。对象相等性将是具有相同数据的不同内存区域中的两个对象。
说两个指针都指向同一个对象,两个对象是彼此的精确副本之间的区别。
答案 1 :(得分:0)
在像Java这样的面向对象语言中,对象是包含状态和行为的数据结构。对象的状态由其内部数据字段的值确定,其行为由为对象定义的方法(函数或过程)确定(通常在对象的内部字段上操作 - 但不一定) 。始终通过引用访问对象。也就是说,变量保存指向对象内存位置的指针。
因此,物体可能同时拥有价值和位置。
Equality 测试两个对象是否具有相同的“值”(由对象的内部状态定义),即“这两个对象具有相同的值吗?”
身份测试对象的两个引用是否相同,即“这两个对象是同一个对象(在内存中的同一位置)吗?”
你会注意到,如果对象在不同的内存位置是不同的结构,那么对象可能具有完全相同的值但具有不同的身份。两个对象引用永远不可能具有相同的标识(即,在内存中引用相同的数据结构),但不同的值。