Java赋值运算符的执行

29 浏览
0 Comments

Java赋值运算符的执行

在Java中,我理解赋值运算符的结果是右操作数的值,所以像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),由于现在xy应该是引用同一个对象,所以结果应该是true,但实际上得到的结果却是false

Screenshot showing the source and that the output is "false"

这是怎么回事呢?

0