在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 )