java ->基本數據類型與包裝類的概述和轉化
基本類型 包裝類概述
在實際程序使用中,程序界面上用戶輸入的數據都是以字符串類型進行存儲的。而程序開發中,我們需要把字符串數據,根據需求轉換成指定的基本數據類型,如年齡需要轉換成int類型,考試成績需要轉換成double類型等。那麽,想實現字符串與基本數據之間轉換怎麽辦呢?
Java中提供了相應的對象來解決該問題,基本數據類型對象包裝類:java將基本數據類型值封裝成了對象。封裝成對象有什麽好處?可以提供更多的操作基本數值的功能。
8種基本類型對應的包裝類如下:
byte -> Byte
short ->Short
int -> Integer
long ->Lomg
double ->Double
float ->Float
char ->Character
boolean ->Boolean
其中需要註意int對應的是Integer,char對應的Character,其他6個都是基本類型首字母大寫即可。
基本數據類型對象包裝類特點:用於在基本數據和字符串之間進行轉換。
將字符串轉成基本類型:
parseXXX(String s);其中XXX表示基本類型,參數為可以轉成基本類型的字符串,如果字符串無法轉成基本類型,將會發生數字轉換的問題 NumberFormatException
System.out.println(Integer.parseInt("123")
//打印結果為 125
將基本數值轉成字符串有3種方式:
基本類型直接與””相連接即可;34+""
調用String的valueOf方法;String.valueOf(34) ;
調用包裝類中的toString方法;Integer.toString(34) ;
基本類型和對象轉換
使用int類型與Integer對象轉換進行演示,其他基本類型轉換方式相同。
基本數值---->包裝對象
Integer i = new Integer(4);//使用構造函數函數
Integer ii = new Integer("4");//構造函數中可以傳遞一個數字字符串
Integer iii = Integer.valueOf
Integer iiii = Integer.valueOf("4");//使用包裝類中的valueOf方法
包裝對象---->基本數值
int num = i.intValue();
自動裝箱拆箱
在需要的情況下,基本類型與包裝類型可以通用。有些時候我們必須使用引用數據類型時,可以傳入基本數據類型。
比如:
基本類型可以使用運算符直接進行計算,但是引用類型不可以。而基本類型包裝類作為引用類型的一種卻可以計算,原因在於,Java”偷偷地”自動地進行了對象向基本數據類型的轉換。
相對應的,引用數據類型變量的值必須是new出來的內存空間地址值,而我們可以將一個基本類型的值賦值給一個基本類型包裝類的引用。原因同樣在於Java又”偷偷地”自動地進行了基本數據類型向對象的轉換。
l 自動拆箱:對象自動直接轉成基本數值
l 自動裝箱:基本數值自動直接轉成對象
Integer i = 4;//自動裝箱。相當於Integer i = Integer.valueOf(4);
i = i + 5;//等號右邊:將i對象轉成基本數值(自動拆箱) i.intValue() + 5; 加法運算完成後,再次裝箱,把基本數值轉成對象。
l 自動裝箱(byte常量池)細節的演示
當數值在byte範圍之內時,進行自動裝箱,不會新創建對象空間而是使用已有的空間。
Integer a = new Integer(300);
Integer b = new Integer(300);
System.out.println(a==b);//false
System.out.println(a.equals(b));//true
System.out.println("---------------------");
Integer x = 127;
Integer y = 127;
//在jdk1.5自動裝箱時,如果數值在byte範圍之內,不會新創建對象空間而是使用原來已有的空間。
System.out.println(x==y); //true
System.out.println(x.equals(y)); //true
java ->基本數據類型與包裝類的概述和轉化