国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

JAVA Integer類型自加實例詳解

瀏覽:46日期:2022-08-31 18:57:32

JAVA語言中有一些基本數據類型,比如int,long,double...

這些數據類型可以支持一些運算操作符,其中對于int類型的++/--操作符

Integer類型是一個對象類型,居然也可以支持++運算,那么問題來了

一個Integer對象執行++操作之后還是原來那個對象嗎?

測試代碼

public class IntegerTest { @Test public void test() { Integer a = 1; System.out.println(System.identityHashCode(a)); a++; System.out.println(System.identityHashCode(a)); }}

輸出

105704967392292416

對象的內存地址不一致,說明Integer對象執行++操作之后是返回一個新的Integer對象可以通過查看匯編代碼分析一下原因

簡化代碼

public class IntegerTest { public void test() { Integer a = 1; a++; }}

上述代碼的字節碼

Compiled from 'IntegerTest.java'public class com.migoo.common.IntegerTest { public com.migoo.common.IntegerTest(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object.'<init>':()V 4: return public void test(); Code: 0: iconst_1 1: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 4: astore_1 5: aload_1 6: astore_2 7: aload_1 8: invokevirtual #3 // Method java/lang/Integer.intValue:()I 11: iconst_1 12: iadd 13: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer; 16: dup 17: astore_1 18: astore_3 19: aload_2 20: pop 21: return}

關于Java字節碼的介紹可以看一下這篇博客

我們主要關注8、13兩行,底層使用了java/lang/Integer.intValue拆箱,然后自加,再通過java/lang/Integer.valueOf裝箱,拆箱裝箱操作之后變量a 所指向的對象就不是原來的對象了

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 日韩精品一区二区三区在线观看l | 国产成人综合95精品视频免费 | 欧美一级在线看 | 亚洲欧美二区三区久本道 | 97se亚洲综合在线韩国专区福利 | 国产免费资源 | 九九99久麻豆精品视传媒 | 国产精品成人免费视频不卡 | 欧美一级鲁丝片免费看 | 久草视频在线资源 | 成年人在线观看网站 | 亚洲综合网在线 | 国产精品午夜性视频网站 | 黄到让你下面湿的视频 | 精品国产_亚洲人成在线高清 | 亚洲综合精品成人 | 欧美区一区 | 成人精品视频在线观看 | 亚洲国产观看 | 毛色毛片免费观看 | 国产久草视频 | 国产日产欧产精品精品推荐在线 | 精品国产杨幂在线观看福利 | 久久精品国产亚洲精品2020 | 一级视频在线免费观看 | 在线日韩欧美一区二区三区 | 97超级碰碰碰免费公开在线观看 | 亚洲一区免费在线 | 在线黄色影院 | 99国产精品九九视频免费看 | 欧美一级片毛片 | 国产a级高清版毛片 | 日本一区视频在线观看 | 黄色三级理沦片 | 国产成人偷拍 | 欧美午夜在线播放 | 欧美特级 | 国产亚洲一区呦系列 | 日本成人免费观看 | 91久久精品国产一区二区 | 久久国产精品99久久小说 |