Int與Integer的區別


一、區別:

1.Integer是int的包裝類,int則是java的一種基本的數據類型;

2.Integer變量必須實例化之后才能使用,而int變量不需要實例化;

3.Integer實際是對象的引用,當new一個Integer時,實際上生成一個指針指向對象,而int則直接存儲數值

4.Integer的默認值是null,而int的默認值是0。

二、Integer和int的比較

  1.由於Integer實際是對一個Integer對象的引用,所以兩個通過new生成的Integer變量永遠是不相同的,因為New生成的是兩個不同的對象,其內存地址不同。下面運行的結果為false

  2.Integer變量和int變量進行比較時,只要兩個變量的值相等,則結果就為True,(因為包裝類Integer和基本數據類型比較的時候,java會自動拆箱為int,然后進行比較,實際上就是兩個int變量進行比較),下面運行的結果為true

  3.非new生成的Integer變量和new Integer生成的Integer變量比較的時候,結果為false(因為非new生成的Integer變量指向的是Java常量池中的對象,而new出來的對象指向的是堆中新建的對象,兩者內存地址不同),下面返回的是false

  4.兩個非new出來的Integer對象,進行比較的時候,如果兩個變量的值區間在-127~128之間的時候,則返回的結果為true,如果兩個變量的變量值不在這個區間,則比較的結果為false。下面返回的是true

 

  下面返回的是false

三、java 基本類型與引用類型的區別:

  1.基本數據類型保存原始值,引用數據類型保存的是引用值(引用值就是指在對象中所處的地理位置)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM