Java中间缓存变量机制
public static void main(String[] args){ test_1(); test_2(); } private static void test_1(){ int j = 0; for(int i = 0; i < 100; i++){ j = j++; } System.out.println("test_1:"+j); } private static void test_2(){ int j = 0; for(int i = 0; i < 100; i++){ j = ++j; } System.out.println("test_2:"+j); }
输出结果:
test_1:0 test_2:100
本题考查的知识点是:Java中间缓存变量机制。在java中,执行自增运算时,会为每一个自增操作分配一个临时变量,如果是前缀加(++i),就会“先自加1后赋值(给临时变量)”;如果是后缀加(i++),就会“先赋值(给临时变量)后自加1”。运算最终使用的,并不是变量本身,而是被赋了值的临时变量。
test_1中的 j = j++ 即等同于: int temp = j; j = j + 1; j = temp;
test_2中的 j = ++j 即等同于: j = j + 1; int temp = j; j = temp;
追梦的脚步,永不停息