国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

java中i=i++和j=i++的區別小結

瀏覽:37日期:2022-08-14 15:50:17

i=i++;j=i++的區別

i=i++-----------在java中 這個語句的前后順序應該是這樣的(tmp=i;i++;tmp==i)

java的編譯器在遇到i++和i- -的時候會重新為變量運算分配一塊內存空間,以存放原始的值,而在完成了賦值運算之后,將這塊內存釋放掉,下面首先看一下如果是j=i++的情況:

java中i=i++和j=i++的區別小結

i的原始值存放在后開辟的內存中,最后這個值將賦值給j,這樣j=i++后,j就會得到i的值,而i又將自加,所以,在釋放內存之后,原來存放j和i的地方將得到值將是:j(此時的值等于初始i值)和i(i自加后的值)。

看看i=i++的情況:

java中i=i++和j=i++的區別小結

i的原始值存放在后開辟的內存中,給剛開始的i進行自加,最后再將后面內存中的i賦給剛開始的i.

我們來看看這兩個程序反編譯的結果

這個是i=i++;

java中i=i++和j=i++的區別小結

1: iconst_0 整型常量值0進棧

2: istore_1 將棧頂整型數值存入第二個局部變量

3: iload_1 第二個整型局部變量進棧

4: iinc 1, 1 指定整型變量增加指定值

5: istore_1 將棧頂整型數值存入第二個局部變量

j = i++;

java中i=i++和j=i++的區別小結

反編譯后是這樣的

7: iconst_0 整型常量值0進棧

8: istore_1 將棧頂整型數值存入第二個局部變量

9: iconst_0 整型常量值0進棧

10: istore_2 將棧頂整型數值存入第三個局部變量

11: iload_2 第三個整型局部變量進棧

12: iinc 2, 1 指定整型變量增加指定值

15: istore_1 將棧頂整型數值存入第二個局部變量

總結

到此這篇關于java中i=i++和j=i++區別的文章就介紹到這了,更多相關java i=i++和j=i++區別內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 开化县| 泸西县| 嵩明县| 凤山市| 土默特左旗| 本溪| 师宗县| 武功县| 绥滨县| 宝应县| 泰顺县| 盐边县| 项城市| 昭觉县| 金门县| 平乡县| 西平县| 山西省| 罗江县| 阳泉市| 慈利县| 柏乡县| 秦皇岛市| 青阳县| 翁牛特旗| 苏州市| 黄冈市| 湘阴县| 竹北市| 红安县| 漳平市| 兴安县| 龙门县| 定远县| 徐水县| 织金县| 舟山市| 铁岭市| 江华| 天水市| 德阳市|