JVM自增,自减运行原理

以a=1 ; a=a++为例:
1.JVM首先对本地变量a进行压栈,然后对另一个a进行压栈,这时栈内存中有一个本地变量a和一个栈顶变量a。
2.然后执行自增操作,此刻栈顶a为1,本地变量a为2。
3.然后JVM将栈顶a出栈赋给本地变量a,最终本地变量a变为了1。

它不是我们直觉上的认为先复制再自增,是是自增后被原数据给覆盖了。

如果是a=1 ; a=++a:
1.JVM对本地变量a进行压栈,栈顶变量就是a。
2.然后执行自增操作,本地变量a就是2。
3.然后JVM将栈顶a出栈,变量a就变为了1。

猜你喜欢

转载自blog.csdn.net/Dai_sir_man/article/details/120288281