Java i ++操作说明

Sud*_*pta 2 java

可能重复:
a + = b和a = + b之间有什么区别,还有++和++ a?
"x = x ++"之后的x是什么?

在Test1中,i将其值递增1并返回旧值并将其增量值保存在i变量中.但是在Test2中,我将其值增加1并返回其旧值,并且还会发生增量.他们是否为i中的变量分配了i的副本.Test2中的操作步骤是什么.

测试1

int i = 0;
System.out.print(i++);
System.out.print(i);
Run Code Online (Sandbox Code Playgroud)

输出01

TEST2

int i = 0;
i = i++;
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

输出0

Ern*_*ill 15

该语句i = i++在Java中具有明确定义的行为.首先,将值i推到堆栈上.然后,变量i递增.最后,弹出堆栈顶部的值并将其分配i.最终结果是没有任何反应 - 智能优化器可以删除整个语句.