天天看點

java學習之基本資料類型對象包裝類

基本資料類型對象包裝類:

        為了友善操作基本資料類型值,将其封裝成了對象,在對象中定義了屬性和行為,豐富了該資料的操作。

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
	}
           

繼續閱讀