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

xiaoxiao2021-02-27  146

今天在整理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---0 method_2---100

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


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


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

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

转载请注明原文地址: https://www.6miu.com/read-15227.html

最新回复(0)