Java复杂语句执行顺序

6
System.out.println(info + ": " + ++x);

这个语句的含义等同于什么?
x++;
System.out.println(info + ": " + x);

并且

System.out.println(info + ": " + x++);

等同于

System.out.println(info + ": " + x);
x++;

JVM只能一次处理一个语句,那么它是这样划分这些语句的吗?


2
我来这里是预料到会有一些疯狂的线程混乱。 - Edward Thomson
可能是一个重复的问题...嗯,和其他几百个问题一样(https://dev59.com/LXRB5IYBdhLWcg3w3K8J和其他)。 - Marco13
1个回答

3

是的,两种情况都是如此。

++x 将在包含语句之前执行,即变量x的值将在使用之前递增。

x++ 将在包含语句之后执行,即值将被使用,然后变量x递增。

明确一点:在这两种情况下,变量x的值都将被更改。


在执行该语句时,JVM会如何分配它? - Ruturaj
这个答案不正确。x++会在获取值后进行后增操作。 - user207421
1
@EJP,那就是我之前所说的。 - Szymon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接