中间变量缓存机制

来源:互联网 发布:统计局70城房价数据 编辑:程序博客网 时间:2024/05/01 07:32

java中有自增和自减运算符(i++,++i,–i,i–),在进行自增或者自减运算时,默认会为自增/自减数分配一个临时变量,++i是先自增,然后将这个值赋值给临时变量;i++则是先将值赋值给临时变量后进行自增。运算最终使用的是临时变量而不是这个变量自身
用代码来解释:

public static void main(String[] args) {        int a=0;        for (int i = 0; i < 100; i++) {            a=a++;        }          System.out.println(a);        //这里的输出是多少?    }
输出为:0;为什么呢?这就牵扯到了刚刚说的中间变量缓存机制a=a++相当于 1. int temp; 2. temp=a; 3. a=a+1; 4. a=temp;最终引用的是那个临时变量同理如果是a=++a那么输出为100a=++4相当于 1. int temp; 2. a=a+1; 3. temp=a; 4. a=temp;

也就是说引入中间变量缓存机制是为了区分a++和++a即先运算后赋值还是先赋值后运算的问题。

原创粉丝点击