目录
一:起因:以下代码为什么打印值为0?
int i = 0;
int j = i++;
System.out.println(j); // 打印值 0
int i = 0;
int j = ++i;
System.out.println(j); // 打印值 1
二:分析什么原因呢?
那么直接看i++的操作指令吧;
0: iconst_0 //将int类型常量0压入栈
1: istore_1 // 将int类型值存入局部变量1
2: iload_1 //从局部变量1中装载int类型值
3: iinc 1, 1 //把一个常量值加到一个int类型的局部变量上
6: istore_2 //将int类型值存入局部变量2