java中i=i++和j=i++的區(qū)別小結(jié)
i=i++;j=i++的區(qū)別
i=i++-----------在java中 這個語句的前后順序應(yīng)該是這樣的(tmp=i;i++;tmp==i)
java的編譯器在遇到i++和i- -的時候會重新為變量運(yùn)算分配一塊內(nèi)存空間,以存放原始的值,而在完成了賦值運(yùn)算之后,將這塊內(nèi)存釋放掉,下面首先看一下如果是j=i++的情況:

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

i的原始值存放在后開辟的內(nèi)存中,給剛開始的i進(jìn)行自加,最后再將后面內(nèi)存中的i賦給剛開始的i.
我們來看看這兩個程序反編譯的結(jié)果
這個是i=i++;

1: iconst_0 整型常量值0進(jìn)棧
2: istore_1 將棧頂整型數(shù)值存入第二個局部變量
3: iload_1 第二個整型局部變量進(jìn)棧
4: iinc 1, 1 指定整型變量增加指定值
5: istore_1 將棧頂整型數(shù)值存入第二個局部變量
j = i++;

反編譯后是這樣的
7: iconst_0 整型常量值0進(jìn)棧
8: istore_1 將棧頂整型數(shù)值存入第二個局部變量
9: iconst_0 整型常量值0進(jìn)棧
10: istore_2 將棧頂整型數(shù)值存入第三個局部變量
11: iload_2 第三個整型局部變量進(jìn)棧
12: iinc 2, 1 指定整型變量增加指定值
15: istore_1 將棧頂整型數(shù)值存入第二個局部變量
總結(jié)
到此這篇關(guān)于java中i=i++和j=i++區(qū)別的文章就介紹到這了,更多相關(guān)java i=i++和j=i++區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot+redis分布式鎖實現(xiàn)模擬搶單
這篇文章主要介紹了springboot+redis分布式鎖實現(xiàn)模擬搶單,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
MyBatis分頁查詢返回list的時候出現(xiàn)null的問題
這篇文章主要介紹了MyBatis分頁查詢返回list的時候出現(xiàn)null的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
Spring?Security?登錄時添加圖形驗證碼實現(xiàn)實例
這篇文章主要為大家介紹了Spring?Security?登錄時添加圖形驗證碼實現(xiàn)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
java工廠實例BeanFactoryPostProcessor和BeanPostProcessor區(qū)別分析
這篇文章主要為大家介紹了BeanFactoryPostProcessor和BeanPostProcessor區(qū)別示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
java枚舉enum,根據(jù)value值獲取key鍵的操作
這篇文章主要介紹了java枚舉enum,根據(jù)value值獲取key鍵的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
Java 其中翻轉(zhuǎn)字符串的實現(xiàn)方法
這篇文章主要介紹了Java 其中翻轉(zhuǎn)字符串的實現(xiàn)方法,需要的朋友可以參考下2014-02-02
Java序列化JSON丟失精度問題的解決方法(修復(fù)Long類型太長)
這篇文章主要給大家介紹了關(guān)于Java序列化JSON丟失精度問題的解決方法,修復(fù)Long類型太長的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-03-03
SpringMVC?bean實現(xiàn)加載控制方法詳解
SpringMVC是一種基于Java,實現(xiàn)了Web?MVC設(shè)計模式,請求驅(qū)動類型的輕量級Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦?;谡埱篁?qū)動指的就是使用請求-響應(yīng)模型,框架的目的就是幫助我們簡化開發(fā),SpringMVC也是要簡化我們?nèi)粘eb開發(fā)2022-08-08

