真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java中integer和int有什么區(qū)別-創(chuàng)新互聯(lián)

一、java基本數(shù)據(jù)類型及其封裝類

成都創(chuàng)新互聯(lián)公司自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設(shè)計師團隊。

java中integer和int有什么區(qū)別

java數(shù)據(jù)類型有基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,為了方便將基本數(shù)據(jù)類型當(dāng)作對象處理,java引入了基本數(shù)據(jù)類型相對應(yīng)的封裝類,如int封裝類是Integer。

二、java自動拆箱和自動裝箱

1、自動裝箱

自動裝箱其實就是將基本數(shù)據(jù)類型轉(zhuǎn)換為引用數(shù)據(jù)類型(對象)

2、自動拆箱

自動拆箱其實就是將引用數(shù)據(jù)類型轉(zhuǎn)化為基本數(shù)據(jù)類型

代碼如下:

    public static void main(String[] args) {
        Integer a = 1;//這里就用到了自動裝箱;等同于Integer a = new Integer(1);

        int b = a - 1;//對象不能直接進行計算,所以這里有自動拆箱的操作,將a對象轉(zhuǎn)換成基本數(shù)據(jù)類型,然后-1
        System.out.println(a);
        System.out.println(b);
    }

打印結(jié)果:

1
0

三、int和Interger的區(qū)別

從上面我們就能看出int和Interger的區(qū)別:

int是基本數(shù)據(jù)類型,Integer是引用數(shù)據(jù)類型;

int默認值是0,Integer默認值是null;

int類型直接存儲數(shù)值,Integer需要實例化對象,指向?qū)ο蟮牡刂贰?/p>

說到這,是不是認為就這么完事了,其實它們之間還有一些細節(jié)方面的區(qū)別:如下

    public static void main(String[] args) {
        Integer a = new Integer(1);
        Integer b = new Integer(1);

        int c = 1;
        int d = 1;

        Integer e = 1;
        Integer f = 1;
        
        Integer g = 130;
        Integer h = 130;
        
        Integer i = new Integer(130);
        int j = 130;
    }

1:a == b 嗎? 廢話,肯定不相等。兩個new出來的對象地址不一樣。

2:c == d 嗎? 這個也是廢話,都是基本數(shù)據(jù)類型的值肯定相等。

3:現(xiàn)在的關(guān)鍵問題是 e == f 嗎? g == h 嗎?

答案是:e == f; g != h。

為什么會出現(xiàn)這種情況?因為ava在進行編譯時 Integer g = 130會被編譯成 Integer.valueOf(130) ,這個可以通過反編譯class文件看到。而通過Integer源碼可以得出,Integer.valueOf() 方法會在數(shù)值-128~127之間會對Integer進行緩存,不會再重新new一個,所以 e==f ;當(dāng)數(shù)值二大于127或者小于-128的時候則會重新new一個,所以g != h 。

Integer的valueOf方法如下:

    public static Integer valueOf(int i) {
         //IntegerCache.low == -128  ;IntegerCache.high == 127
         //當(dāng)數(shù)值大于-128小于127時,進行緩存;否則重新new一個。
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

4:c == e 嗎, i == j 嗎?

答案都是相等的。因為封裝類和基本數(shù)據(jù)類型進行比較的時候,java會自動拆箱,然后比較數(shù)值是否相等。

總結(jié):

1、都是封裝類,都是new出來的,肯定不相等。因為對象的內(nèi)存地址不一樣。

2、都是封裝類,都不是new出來的,如果值在-128~127之間,那就相等,否則不相等。

3、如果是封裝類和基本類型進行比較,只要數(shù)值相等那就相等,否則就不相等。因為封裝類和基本數(shù)據(jù)類型進行比較的時候會有一個自動拆箱操作。

4、都是基本數(shù)據(jù)類型,如果數(shù)值相等,那就相等;否則不相等。

以上就是java中int與integer的區(qū)別的詳細內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司其它相關(guān)文章!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)站標(biāo)題:java中integer和int有什么區(qū)別-創(chuàng)新互聯(lián)
文章起源:http://weahome.cn/article/djidgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部