1. 程式人生 > >int與integer的比較大小

int與integer的比較大小

Integer是int的封裝類,int與Integer比較時,Integer會自動拆箱,無論怎麼比,int與Integer都相等,

Integer比較時,檢視java原始碼可知道,在-128與127之間,Integer會自動存在記憶體中,再有時,直接從記憶體中去取,不在這個範圍則會new新物件,所以Integer與new Integer永遠都不相等。

範例

int a=127;int b=127;Integer c = 127;Integer d = new Integer(127); Integer e=127;

a==b true;     a==c;true        c==d;false;       a==d;true;        c==e true;

int a=128;int b=128;Integer c=128;Integer d=128;Integer e = new Integer(128);

a==b true;    a==c true;     a==e true;    c==d false;    c==e  false;

java的自動裝箱與自動拆箱

自動裝箱就是將基本資料型別轉換為包裝器型別,自動拆箱就是將包裝器型別轉為基本資料型別。

裝箱過程系統執行了Integer.valueOf(99);

在-128到127範圍,會生成同一個物件,在範圍之外,會執行new Integer(99);

裝箱的過程會建立對應的物件,這個會消耗記憶體,所以裝箱的過程會增加記憶體的消耗,影響效能

拆箱過程執行了int totlprim = total.intValue();

直接返回value