2014-10-11 296 views

回答

2

第26行有时会返回true吗?

不,它永远不会返回true,除非您给它提供相同的确切对象引用。

其原因是Java对象不是“嵌入”在另一个中:在A中有对B的引用,但它指的是完全不同的对象。因此,不存在“假别名”:存储A类实例中对类B的引用所在的位置与存储B本身的位置不同。

+0

有没有可能两个对象共享相同的内存开始,虽然它们不是同一类(它们的大小不一样)? – AlexWei 2014-10-11 13:10:08

+0

@AlexWei否,内存中的对象位置不能重叠。与允许将对象嵌入到另一个中的其他语言(如C++)不同,Java对象通过引用包含在内。这或多或少对应于在C++中有一个指向对象的指针。 – dasblinkenlight 2014-10-11 13:12:24

相关问题