最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中i = i++和i =++i的深入講解

 更新時(shí)間:2021年02月01日 16:28:39   作者:最底層的程序員  
這篇文章主要介紹了java中i = i++和i =++i的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
public class Count {
 public static void main(String[] args) {
 int i = 0;
 i = i++ ;
 System.out.println(i);
 }
}

上面代碼輸出的i為0,如果是把i = i++換成i=++i,又會(huì)輸出1,這是由于i++是先賦值,再計(jì)算導(dǎo)致,但是為什么先賦值呢?

public static void main(String[] args) {
 int i = 0;
 i++ ;
 }

 public static void main(java.lang.String[]);
 Code:
 0: iconst_0 將int型0推送至棧頂(找到0)
 1: istore_1 將棧頂int型數(shù)值存入第二個(gè)本地變量(變量就是i)
 2: iinc  將指定int型變量增加指定值(如i++, i--, i+=2等)
 5: return


上圖是i++的字節(jié)碼,++i的和i++的一摸一樣,0和1就是最基礎(chǔ)的給i賦值為0,iinc就是把i自增。

但是如果加上一個(gè)i=i++呢?

// i = i++;
 public static void main(java.lang.String[]);
 Code:
 0: iconst_0 將int型0推送至棧頂
 1: istore_1 將棧頂int型數(shù)值存入第二個(gè)本地變量
 2: iload_1 將第二個(gè)int型本地變量推送至棧頂
 3: iinc  將指定int型變量增加指定值(如i++, i--, i+=2等)
 6: istore_1 將棧頂int型數(shù)值存入第二個(gè)本地變量
 7: return

0和1依舊是給i賦值為0,2是把當(dāng)前i的值推送到棧頂,然后iinc對(duì)局部變量表的i進(jìn)行自增,6是把棧頂?shù)臄?shù)值賦給i,注意,2的時(shí)候推送到棧頂?shù)氖?,所以又變回0了。

// i = ++i
 public static void main(java.lang.String[]);
 Code:
 0: iconst_0 將int型0推送至棧頂
 1: istore_1 將棧頂int型數(shù)值存入第二個(gè)本地變量
 2: iinc  將指定int型變量增加指定值(如i++, i--, i+=2等)
 5: iload_1 將第二個(gè)int型本地變量推送至棧頂
 6: istore_1 將棧頂int型數(shù)值存入第二個(gè)本地變量
 7: return

i = ++i的時(shí)候,iinc往前提了一步,說(shuō)明,在i的值被壓到棧頂前,先進(jìn)行了自增,所以棧頂?shù)闹凳?,此時(shí)再賦值給局部變量表的里i,就是自增過(guò)的。

總結(jié):iinc操作是直接針對(duì)局部變量表的,不經(jīng)過(guò)操作棧,i++所謂的先賦值,從字節(jié)碼層面來(lái)看,就是i在進(jìn)行自增前,先把原來(lái)的值存到了操作數(shù)棧,所以如果執(zhí)行b = i++,b之所以等于是i原來(lái)的值,就是由于操作數(shù)棧的值是自增前的值,而++i的,自增操作提前了,所以b=++i后,b的值和i的值一樣。

總結(jié)

到此這篇關(guān)于java中i = i++和i =++i的文章就介紹到這了,更多相關(guān)java中i = i++和i =++i內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springBoot 插件工具熱部署 Devtools的步驟詳解

    springBoot 插件工具熱部署 Devtools的步驟詳解

    這篇文章主要介紹了springBoot 插件工具 熱部署 Devtools,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • SpringCloud?服務(wù)注冊(cè)中的nacos實(shí)現(xiàn)過(guò)程

    SpringCloud?服務(wù)注冊(cè)中的nacos實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了SpringCloud?服務(wù)注冊(cè)之nacos實(shí)現(xiàn)過(guò)程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 關(guān)于Springboot2.x集成lettuce連接redis集群報(bào)超時(shí)異常Command timed out after 6 second(s)

    關(guān)于Springboot2.x集成lettuce連接redis集群報(bào)超時(shí)異常Command timed out afte

    這篇文章主要介紹了Springboot2.x集成lettuce連接redis集群報(bào)超時(shí)異常Command timed out after 6 second(s),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-03-03
  • SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對(duì)數(shù)據(jù)庫(kù)密碼加密的方法

    SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對(duì)數(shù)據(jù)庫(kù)

    這篇文章主要介紹了SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對(duì)數(shù)據(jù)庫(kù)密碼加密的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Spring實(shí)現(xiàn)文件上傳功能

    Spring實(shí)現(xiàn)文件上傳功能

    本篇文章主要介紹了Spring實(shí)現(xiàn)文件上傳功能,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • Java實(shí)現(xiàn)排隊(duì)論的原理

    Java實(shí)現(xiàn)排隊(duì)論的原理

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)排隊(duì)論的原理,對(duì)排隊(duì)論感興趣的小伙伴們可以參考一下
    2016-02-02
  • Spring Boot + Jpa(Hibernate) 架構(gòu)基本配置詳解

    Spring Boot + Jpa(Hibernate) 架構(gòu)基本配置詳解

    本篇文章主要介紹了Spring Boot + Jpa(Hibernate) 架構(gòu)基本配置詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Java實(shí)現(xiàn)Treap樹(shù)的示例代碼

    Java實(shí)現(xiàn)Treap樹(shù)的示例代碼

    本文主要介紹了Java實(shí)現(xiàn)Treap樹(shù)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • SpringBoot通過(guò)源碼探究靜態(tài)資源的映射規(guī)則實(shí)現(xiàn)

    SpringBoot通過(guò)源碼探究靜態(tài)資源的映射規(guī)則實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot通過(guò)源碼探究靜態(tài)資源的映射規(guī)則實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • JVM進(jìn)階教程之字段訪問(wèn)優(yōu)化淺析

    JVM進(jìn)階教程之字段訪問(wèn)優(yōu)化淺析

    這篇文章主要給大家介紹了關(guān)于JVM進(jìn)階教程之字段訪問(wèn)優(yōu)化的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01

最新評(píng)論

正阳县| 井冈山市| 卓尼县| 兴隆县| 稻城县| 兰考县| 买车| 曲阳县| 永定县| 临泽县| 南郑县| 江达县| 中卫市| 综艺| 红桥区| 南投县| 平昌县| 建始县| 清水县| 邵阳县| 南城县| 黎平县| 化州市| 红桥区| 星座| 和平区| 比如县| 宝应县| 恭城| 南通市| 吴桥县| 修水县| 临漳县| 湖北省| 云南省| 平罗县| 定襄县| 临江市| 阿拉善左旗| 双桥区| 石楼县|