欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA Integer類型自加實(shí)例詳解

 更新時(shí)間:2020年05月30日 09:12:41   作者:migoo  
這篇文章主要介紹了JAVA Integer類型自加實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

JAVA語(yǔ)言中有一些基本數(shù)據(jù)類型,比如int,long,double...

這些數(shù)據(jù)類型可以支持一些運(yùn)算操作符,其中對(duì)于int類型的++/--操作符

Integer類型是一個(gè)對(duì)象類型,居然也可以支持++運(yùn)算,那么問(wèn)題來(lái)了

一個(gè)Integer對(duì)象執(zhí)行++操作之后還是原來(lái)那個(gè)對(duì)象嗎?

測(cè)試代碼

public class IntegerTest {

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

輸出

105704967
392292416

對(duì)象的內(nèi)存地址不一致,說(shuō)明Integer對(duì)象執(zhí)行++操作之后是返回一個(gè)新的Integer對(duì)象
可以通過(guò)查看匯編代碼分析一下原因

簡(jiǎn)化代碼

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

上述代碼的字節(jié)碼

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
}

關(guān)于Java字節(jié)碼的介紹可以看一下這篇博客

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Java實(shí)現(xiàn)解析Excel公式

    使用Java實(shí)現(xiàn)解析Excel公式

    在日常工作中,我們經(jīng)常需要在Excel中使用公式對(duì)表中數(shù)據(jù)進(jìn)行計(jì)算和分析,所以本文小編主要來(lái)和大家介紹一下如何在Java中實(shí)現(xiàn)解析Excel公式,感興趣的可以了解下
    2024-02-02
  • 如何配置feign全局log

    如何配置feign全局log

    這篇文章主要介紹了如何配置feign全局log,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 集合框架及背后的數(shù)據(jù)結(jié)構(gòu)

    集合框架及背后的數(shù)據(jù)結(jié)構(gòu)

    本文主要介紹了Java的集合框架Java?Collection?Framework,接口interface以及背后的數(shù)據(jù)結(jié)構(gòu),感興趣的同學(xué)可以閱讀參考
    2023-03-03
  • Java亂碼問(wèn)題解決方法_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java亂碼問(wèn)題解決方法_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    開(kāi)發(fā)java應(yīng)用出現(xiàn)亂碼是很常見(jiàn)的,畢竟現(xiàn)在unicode的使用還不是很廣泛,下面給大家分享Java亂碼問(wèn)題解決方法,感興趣的朋友一起看看吧
    2017-07-07
  • 教你用JAVA寫文本編輯器(三)

    教你用JAVA寫文本編輯器(三)

    這篇文章主要給大家介紹了關(guān)于用JAVA寫文本編輯器的相關(guān)資料,本文主要實(shí)現(xiàn)的是一個(gè)點(diǎn)擊選擇文本格式的窗口,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • 輕松學(xué)會(huì)使用JavaMail?API發(fā)送郵件

    輕松學(xué)會(huì)使用JavaMail?API發(fā)送郵件

    想要輕松學(xué)會(huì)使用JavaMail?API發(fā)送郵件嗎?本指南將帶你快速掌握這一技能,讓你能夠輕松發(fā)送電子郵件,無(wú)論是個(gè)人還是工作需求,跟著我們的步驟,很快你就可以在Java應(yīng)用程序中自如地處理郵件通信了!
    2023-12-12
  • Netty搭建WebSocket服務(wù)器實(shí)戰(zhàn)教程

    Netty搭建WebSocket服務(wù)器實(shí)戰(zhàn)教程

    這篇文章主要介紹了Netty搭建WebSocket服務(wù)器實(shí)戰(zhàn),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-03-03
  • java之map集合存放null值的問(wèn)題

    java之map集合存放null值的問(wèn)題

    這篇文章主要介紹了java之map集合存放null值的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java線程池框架核心代碼解析

    Java線程池框架核心代碼解析

    這篇文章主要針對(duì)Java線程池框架核心代碼進(jìn)行詳細(xì)解析,分析Java線程池框架的實(shí)現(xiàn)ThreadPoolExecutor,感興趣的小伙伴們可以參考一下
    2016-07-07
  • SpringSecurity?表單登錄的實(shí)現(xiàn)

    SpringSecurity?表單登錄的實(shí)現(xiàn)

    本文主要介紹了SpringSecurity?表單登錄的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12

最新評(píng)論