在Java中,我知道赋值的结果是正确的操作数的值,因此类似语句的结果x == (y = x)
为to 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
。
这是怎么回事
x.equals( y = x )