java中int和Integer對比的一些坑

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

--------------------- .net

Integer與int類型的關係

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

須要注意的是Integer裏面默認的緩存數字是-128-127,blog

一、Integer與Integer相互比較,數據在-128-127範圍內,就會從緩存中拿去數據,比較就相等;若是不在這個範圍,就會直接新建立一個Integer對象,使用 == 判斷的是兩個內存的應用地址,因此天然不相等。內存

二、Integer和int類型相比,在jdk1.5,會自動拆箱,而後比較棧內存中的數據,因此沒有不想等的狀況

jdk

int跟int比較

int數據類型,都是在棧內存中存儲,若是這個數字在棧內存中存在就會直接指向這個內存地址,若是不存在,就會從新開闢內存空間,因此int和int類型的比較,相同的值不會存在內存不等的狀況數據類型

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

 

 

int跟Integer比較

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

 

Integer跟Integer比較數字

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

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

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

相關文章
相關標籤/搜索