Java 赋值运算符执行
2022-08-31 13:09:10
在Java中,我知道赋值的计算结果是正确的操作数的值,所以像 evaluate to 这样的语句。x == (y = x)
true
但是,此代码输出 。false
public static void main(String[]args){
String x = "hello";
String y = "goodbye";
System.out.println(x.equals(x = y));
}
这是为什么呢?在我的理解中,它首先计算 ,它分配 的值,然后返回 的值。然后进行评估,这应该是因为现在并且应该共享相同的引用,但是相反,我得到了.(x = y)
x
y
y
x.equals(y)
true
x
y
false
这是怎么回事?