在寻找==
Java 中逻辑等于如何工作的解释时,答案总是类似于:
对于图元,它返回图元是否具有相同的值(这包括将图元与其 WrapperObject 进行比较,因为 WrapperObject 会自动拆箱为图元)。
对于对象,它返回它们是否代表堆上的同一个对象。
但这些解释似乎都暗示这是两种不同的东西,它们的==
行为不同取决于你是在比较对象还是基元。在我看来,它们实际上必须是完全相同的东西:从 Stack 中取出两个变量并比较它们的值。
改变的不是 的行为==
,而是它所比较的值所代表的内容。如果你比较的东西是原语,那么 Stack 上的值就是原语本身的值。如果您正在比较对象,那么堆栈上的值就是引用的值(因此是对象在堆上的地址)。
我是不是误解了什么,或者==
在所有情况下都表现得一样?如果你能给我指出这在幕后是如何工作的文档,那就加分了。
慕工程0101907
郎朗坤
相关分类