标签:类型 一个 保存 代码 原来 main 生成 通过 --
public static void main(String[] args) {
int number = 1023;
System.out.println(++number);
}
反编译结果:
public static void main(String[] args) {
int number = 1023;
int number = number + 1;
System.out.println(number);
}
public static void main(String[] args) {
int number = 1023;
System.out.println(number++);
}
反编译结果:
public static void main(String[] args) {
int number = 1023;
short var10001 = number;//中间变量,变量类型有number的数值决定。
int var2 = number + 1;
System.out.println(var10001);
}
从上面反编译的结果看,java中的“先使用后修改”,其实是借助一个中间变量来保存变量原来的值,在这个值被使用前,变量的值已经发现了改变。所以用“先使用后修改”来描述java中的 i++或i--可能并不准确。
考虑下面的代码:
public static void main(String[] args) {
int number = 1023;
number = number++;
System.out.println(number);
}
其输出结果为:
1023
根据上文的分析,我们可以大胆分析一下,产生这个结果的过程:
下面是对以上代码进行反编译的结果:
public static void main(String[] args) {
int number = 1023;
short var10000 = number;
int var2 = number + 1;
number = var10000;
System.out.println(number);
}
标签:类型 一个 保存 代码 原来 main 生成 通过 --
原文地址:https://www.cnblogs.com/KenBaiCaiDeMiao/p/12814136.html