包裝類:将基本數值包裝成對象,并提供很多操作對象的方法。
基本資料類型 | 包裝類 |
byte | Byte |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
short | Short |
Integer:(繼承 number,實作comparable方法)
1. 方法和屬性:
MAX_VALUE:封裝int的最大值。
MIN_VALUE:封裝int的最小值。
toBinaryString(int i):将int類型以二進制傳回。
toHexString(int i):将int類型以十六進制傳回。
toOctalSting(int i):将int類型以八進制傳回。
parseInt(Stirng s):将字元串形式的數值轉換成十進制的數值。(同理 其他包裝類也有parseXXX(String s),隻有character沒有)。
parseInt(String s ,2):将二進制的字元串s轉換成十進制
parseInt(String s ,16):将十六進制的字元串s轉換成十進制
parseInt(String s ,8):将八進制的字元串s轉換成十進制
2. 基本資料類型轉換成包裝類
1. Integer i1 = new Integer(4);
2. Integer i2 = new Integer("4");
3. Integer i3 = Integer.value(4)(傳回 new Integer(4));
3. 包裝類轉換基本資料類型
int num = i.intValue();
4. 自動拆裝箱(jdk 1.5後)
自動裝箱
Integer i = 4 ;(内部源碼:Integer.valueof(4))
自動拆箱
i = i + 5; (原理:等會右邊将對象轉換為基本數值 i.intValue() + 5,等号左邊加法運算後,再次裝箱)
5.面試題
Integer a = new Interger(4);
Integer b = new Interger(4);
System.out.println(a==b);false
System.out.println(a.equals(b));ture
Integer a = 127;
Integer b = 127;
System.out.println(a==b);ture
System.out.println(a.equals(b));ture
Integer a = 128;
Integer b = 128;
System.out.println(a==b);flase
System.out.println(a.equals(b));ture
總結:jdk1.5裝箱時如果數值在byte範圍内,不會建立新的的對象空間,而是使用原來已有的記憶體空間 。