1. 程式人生 > 其它 >所有整數型包裝類物件值的比較,使用equals方法進行比較

所有整數型包裝類物件值的比較,使用equals方法進行比較

題眼:整型包裝類、的比較

注:== :對於基本型別,比較的是值;對於引用型別,比較的是地址值。

// 組一
Integer i1=new Integer(10); Integer i2=10; // Integer.valueOf(10) i1==i2;// false
//組二
Integer i3=127; Integer i4=127; i3==i4;// true

// 組三 Integer i5=128; Integer i6=128; i5==i6;// false

組一:

  new,會在堆記憶體中生成一個物件並返回地址值,i2是自動封箱,也new了一個物件,故i1和i2是不同的物件。

組二與組三:

   i 的範圍為區間[-128,127]時,valueOf方法直接返回事先建立好的物件並返回(複用已有物件),否則根據引數 i在堆上 new一個新的Integer物件並返回。

所以當比較兩物件值的話,在[-128,127]時可以直接使用==,當超過這個範圍使用equals方法。

  推薦全部使用equals方法判斷兩個物件是否相等。

 

以此類推:Short,Long,Integer也類似,但Byte的取值範圍是[-128,127],所以直接使用==。