java中int和Integer對比的一些坑


--------------------- 
作者:狂飆的yellowcong 
來源:CSDN 
原文:https://blog.csdn.net/yelllowcong/article/details/78434606 
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

--------------------- 

Integer與int類型的關系

Integer是int的包裝類,int的默認值是0,而Integer的默認值是null(jdk1.5的新特性 自動裝箱和拆箱,Integer.valueOf() 和xx.intValue() ),

需要注意的是Integer里面默認的緩存數字是-128-127,

1、Integer與Integer相互比較,數據在-128-127范圍內,就會從緩存中拿去數據,比較就相等;如果不在這個范圍,就會直接新創建一個Integer對象,使用 == 判斷的是兩個內存的應用地址,所以自然不相等。

2、Integer和int類型相比,在jdk1.5,會自動拆箱,然后比較棧內存中的數據,所以沒有不想等的情況

int跟int比較

int數據類型,都是在棧內存中存儲,如果這個數字在棧內存中存在就會直接指向這個內存地址,如果不存在,就會重新開辟內存空間,所以int和int類型的比較,相同的值不會存在內存不等的情況

八個基本數據類型不能看作對象(這點很特殊),存放在棧中。棧內操作速度快,創建銷毀很容易

 

 

int跟Integer比較

會自動拆箱,變成int與int對比

 

Integer跟Integer比較

  在-128~127的范圍內,==會相等,獲取的cache的地址

  不在上述范圍內,會去new一個對象對比

  直接new對象的話,肯定不等於

 

 




免責聲明!

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



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