【JAVA】执行 count = count++ 值不变问题分析
问题: java 代码中,当执行count = count++ 后,count的值为什么没有被修改,count++执行了吗?
public class Demo001 {
public static void main(String[] args) {
int count = 1;
for (int i = 0; i < 10; i++) {
count = count++;
}
System.out.println(count);
}
}
运行结果:
1
分析:
我们都知道,Java代码是要被javac编译成JVM虚拟机认识的字节码文件才能运行的,那么编译器将代码编译成啥样了?(JDK8)
public class Demo001 {
public Demo001() {
}
public static void main(String[] args) {
int count = 1;
for(int i = 0; i < 10; ++i) {
int var3 = count + 1;
count = count;
}
System.out.println(count);
}
}
我们看到,count++ 运算虽然执行了,但是运行值保存到了临时变量 var3 中,这个临时变量并没有赋值给 count。