Java赋值运算符的执行
- 论坛
- Java赋值运算符的执行
29 浏览
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)
,由于现在x
和y
应该是引用同一个对象,所以结果应该是true
,但实际上得到的结果却是false
。
这是怎么回事呢?