JAVA--浅谈java中间缓存变量机制---(j++和++j的区别)

来源:互联网 发布:各国的创世神话 知乎 编辑:程序博客网 时间:2024/06/08 17:43

今天在整理java基础知识的时候,遇到这样一道题:

/** *java中间缓存变量 */public class test5 {       public static  void main(String[] args){                  method_1();          method_2();       }      private static void method_1(){          int j = 0;          for(int i=0;i<100;i++){                        j = j++;                                  }                 System.out.println("method_1---"+j);          }      private static void method_2(){          int j = 0;          for(int i=0;i<100;i++){                        j=++j;                                  }                 System.out.println("method_2---"+j);          }  }

输出结果:

method_1---0method_2---100

为什么方法一调用之后,最后得到的值和方法二得到的值不一样??


就是因为java只用了中间缓存变量机制:


  j=j++;  等价于:  temp=j; (等号右边的i)  j=j+1;      (等号右边的i)  j=temp;   (等号左边的i)  ----------  而j=++j;  等价于:  j=j+1;  temp=j;  

明白了上面的中间缓存变量机制之后,我们就能理解上面两个方法为何不一样了,对应这修改上面两个方法中的j++和++j就可以很轻松的理解!

原创粉丝点击