亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Java中int和Integer的區(qū)別

 更新時間:2019年04月06日 08:59:48   作者:Kluadias  
這篇文章主要介紹了Java中int和Integer的區(qū)別文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

基本數(shù)據(jù)類型和引用類型

Java是面向?qū)ο蟮木幊陶Z言,一切都是對象,但是為了編程的方便還是引入了基本數(shù)據(jù)類型,為了能夠?qū)⑦@些基本數(shù)據(jù)類型當成對象操作,Java為每一個基本數(shù)據(jù)類型都引入了對應的包裝類型(wrapper class),int的包裝類就是Integer,從Java 5開始引入了自動裝箱/拆箱機制,使得二者可以相互轉(zhuǎn)換,對應如下:

原始類型:boolean,char,byte,short,int,long,float,double
包裝類型:Boolean,Character,Byte,Short,Integer,Long,F(xiàn)loat,Double
Java中的基本數(shù)據(jù)類型只有以上8個,除了基本類型(primitive type),剩下的都是引用類型(reference type)。

三種引用類型:

  1. 類class
  2. 接口interface
  3. 數(shù)組array

int和Integer的區(qū)別

  1. 1、Integer是int的包裝類,int則是java的一種基本數(shù)據(jù)類型
  2. 2、Integer變量必須實例化后才能使用,而int變量不需要
  3. 3、Integer實際是對象的引用,當new一個Integer時,實際上是生成一個指針指向此對象;而int則是直接存儲數(shù)據(jù)值
  4. 4、Integer的默認值是null,int的默認值是0

延伸:
關于Integer和int的比較

1、由于Integer變量實際上是對一個Integer對象的引用,所以兩個通過new生成的Integer變量永遠是不相等的(因為new生成的是兩個對象,其內(nèi)存地址不同)。

Integer i = new Integer(100);
Integer j = new Integer(100);
System.out.print(i == j); //false

2、Integer變量和int變量比較時,只要兩個變量的值是向等的,則結(jié)果為true(因為包裝類Integer和基本數(shù)據(jù)類型int比較時,java會自動拆包裝為int,然后進行比較,實際上就變?yōu)閮蓚€int變量的比較)

Integer i = new Integer(100);
int j = 100;
System.out.print(i == j); //true

3、非new生成的Integer變量和new Integer()生成的變量比較時,結(jié)果為false。(因為非new生成的Integer變量指向的是java常量池中的對象,而new Integer()生成的變量指向堆中新建的對象,兩者在內(nèi)存中的地址不同)

Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j); //false

4、對于兩個非new生成的Integer對象,進行比較時,如果兩個變量的值在區(qū)間-128到127之間,則比較結(jié)果為true,如果兩個變量的值不在此區(qū)間,則比較結(jié)果為

falseInteger i = 100;
Integer j = 100;
System.out.print(i == j); //true

不在-128-127之間:

Integer i = 128;
Integer j = 128;
System.out.print(i == j); //false

對于第4條的原因:
java在編譯Integer i = 100 ;時,會翻譯成為
Integer i = Integer.valueOf(100);,而java API中對Integer類型的valueOf的定義如下:

public static Integer valueOf(int i){
 assert IntegerCache.high >= 127;
 if (i >= IntegerCache.low && i <= IntegerCache.high){
  return IntegerCache.cache[i + (-IntegerCache.low)];
 }
 return new Integer(i);
}

java對于-128到127之間的數(shù),會進行緩存,Integer i = 127時,會將127進行緩存,下次再寫Integer j = 127時,就會直接從緩存中取,就不會new了。

以上所述是小編給大家介紹的Java中int和Integer的區(qū)別詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • java fastdfs客戶端使用實例代碼

    java fastdfs客戶端使用實例代碼

    這篇文章主要介紹了java fastdfs客戶端使用實例代碼,簡單介紹了FastDFS的概念和架構,然后分享了實例代碼,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • bool當成函數(shù)參數(shù)錯誤理解

    bool當成函數(shù)參數(shù)錯誤理解

    經(jīng)常會在函數(shù)的參數(shù)里使用bool參數(shù),這會大大地降低代碼的可讀性
    2012-11-11
  • 散列算法與散列碼(實例講解)

    散列算法與散列碼(實例講解)

    下面小編就為大家?guī)硪黄⒘兴惴ㄅc散列碼(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java中驗證 Mybatis 數(shù)據(jù)分片可以減輕GC壓力的操作方法

    Java中驗證 Mybatis 數(shù)據(jù)分片可以減輕GC壓力的操作方法

    這篇文章主要介紹了Java中驗證 Mybatis 數(shù)據(jù)分片可以減輕GC壓力的操作方法,本文使用 Spock(可集成Spring Boot項目) 編寫測試用例,基于 Groovy (JVM語言),感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • 解決mac最新版intellij idea崩潰閃退crash的問題

    解決mac最新版intellij idea崩潰閃退crash的問題

    這篇文章主要介紹了解決mac最新版intellij idea崩潰閃退crash的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • javaWeb連接數(shù)據(jù)庫實現(xiàn)簡單登陸注冊功能的全過程

    javaWeb連接數(shù)據(jù)庫實現(xiàn)簡單登陸注冊功能的全過程

    初學javaWeb,老師留下一小作業(yè),用JAVA實現(xiàn)與服務器端交互,實現(xiàn)登錄和注冊功能,下面這篇文章主要給大家介紹了關于javaWeb連接數(shù)據(jù)庫實現(xiàn)簡單登陸注冊功能的相關資料,需要的朋友可以參考下
    2022-06-06
  • Java如何處理json字符串value多余雙引號

    Java如何處理json字符串value多余雙引號

    這篇文章主要介紹了Java如何處理json字符串value多余雙引號,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • springboot中如何去整合shrio實例分享

    springboot中如何去整合shrio實例分享

    這篇文章主要介紹了springboot中如何去整合shrio實例分享的相關資料,需要的朋友可以參考下
    2023-08-08
  • java項目中classpath的理解

    java項目中classpath的理解

    這篇文章介紹了java項目中classpath的理解,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • Java實現(xiàn)桌面日歷

    Java實現(xiàn)桌面日歷

    這篇文章主要為大家詳細介紹了Java實現(xiàn)桌面日歷,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評論