關於i = i++的理解
阿新 • • 發佈:2021-02-18
關於i = i++的理解:
首先我們看程式碼例子:
public class Demo {
public static void main(String[] args) {
int i = 0;
i = i++;
System.out.println("i : " + i);
}
}
結果是:
OK! 執行結果為i = 0;我解釋一下自己的看法:
彙編層面的我也就不說了!
區域性變數的值,在記憶體分析的時候,都被放入了棧中:
1.首先會將0放在棧中,
2.從棧頂中彈出元素也就是0 賦值給i, int i = 0;執行完畢
3.將i++中i的值彈入棧,現在也就是0,
4.然後對區域性變量表中的區域性變數進行累加操作,這是i = 1;
5.將棧頂的元素彈出複製給i,此時i = 0,也就是說白忙活了。
這便是我對 i = i++ 的一些理解,歡迎指正!