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;

 

posted @ 2017-08-23 17:21  刘镇平Jasper  阅读(170)  评论(0编辑  收藏  举报