基本資料類型對象包裝類:
為了友善操作基本資料類型值,将其封裝成了對象,在對象中定義了屬性和行為,豐富了該資料的操作。
byte Byte short Short
int Integer long Long
float Float double Double
char Character boolean Boolean
該包裝對象主要用于基本類型和字元串之間的轉換
基本類型---->字元串
1、基本類型數值+“”
2、用String類中的靜态方法valueOf(基本類型數值);
字元串---->基本類型
1、使用包裝類中的靜态方法 xxx parseXxx("xxx類型的字元串");
int parseInt("intstring");
long parseLong("longstring);
。。。
隻有Character中沒有parse方法。
2、如果字元串被Integer進行對象的封裝。
可以是用另一個非靜态的方法,intValue();
将一個Integer對象轉成基本資料類型值。
進制轉換:
十進制------->其他進制
private static void IntegerMethodDemo1()
{
System.out.println(Integer.toBinaryString(16));//10000
System.out.println(Integer.toHexString(60));//3c
System.out.println(Integer.toOctalString(20));//24
//指定進制轉換
System.out.println(Integer.toString(38, 3));//把38轉成3進制,1102
}
其他進制----->十進制
private static void IntegerMethodDemo2()
{
System.out.println(Integer.parseInt("3C", 16));//16進制的3C是十進制的60
System.out.println(Integer.parseInt("111", 2));//2進制的111是十進制7
System.out.println(Integer.parseInt("70", 8));//8進制的70是十進制的56
}
下圖中建立兩個Integer對象num1和num2。第5行輸出false是因為兩個對象的引用參考到不同的對象上,
也就是說它們的位址不同,是以輸出false。第6行輸出true是因為Integer類中重載了Object類中的equals方法,
比較的是兩個對象裡值的大小,相等是以輸出true。第7行用compareTo比較兩個對象的值的大小,如果
相等輸出0,調用對象的值小于參數對象的值輸出-1,調用對象的值大于參數對象的值輸出1。
第8-9行的寫法是自動裝箱的寫法,簡化了書寫,其實其内部還是Integer a1 = new Integer(127)。
第10行輸出true,第14行輸出false是因為jdk1.5後自動裝箱,如果裝箱的資料是一個位元組,那麼該資料會被共享,
不會重新開辟空間。一個位元組能存儲的最大整數為127,是以超過127的數字,就要重新開辟空間,結果才會輸出false。
private static void IntegerMethodDemo3()
{
Integer num1 = new Integer("5");
Integer num2 = new Integer(5);
System.out.println(num1 == num2);//false
System.out.println(num1.equals(num2));//true
System.out.println(num1.compareTo(num2));//0
Integer a1 = 127;
Integer b1 = 127;
System.out.println(a1 == b1);//true
System.out.println(a1.equals(b1));//true
Integer a2 = 128;
Integer b2 = 128;
System.out.println(a2 == b2);//false
System.out.println(b2.equals(b2));//true
}