java之裝箱拆箱
阿新 • • 發佈:2018-06-02
img 類類型 需要 子類 ble package static ger 編譯錯誤
參考http://how2j.cn/k/number-string/number-string-wrap/22.html
封裝類
所有的基本類型,都有對應的類類型
比如int對應的類是Integer
這種類就叫做封裝類
package digit; public class TestNumber { public static void main(String[] args) { int i = 5; //把一個基本類型的變量,轉換為Integer對象 Integer it = new Integer(i);//把一個Integer對象,轉換為一個基本類型的int int i2 = it.intValue(); } }
Number類
數字封裝類有
Byte,Short,Integer,Long,Float,Double
這些類都是抽象類Number的子類
package digit; public class TestNumber { public static void main(String[] args) { int i = 5; Integer it = new Integer(i);//Integer是Number的子類,所以打印true System.out.println(it instanceof Number); } }
基本類型轉封裝類
package digit; public class TestNumber { public static void main(String[] args) { int i = 5; //基本類型轉換成封裝類型 Integer it = new Integer(i); } }
封裝類轉基本類型
package digit;public class TestNumber { public static void main(String[] args) { int i = 5; //基本類型轉換成封裝類型 Integer it = new Integer(i); //封裝類型轉換成基本類型 int i2 = it.intValue(); } }
自動裝箱
不需要調用構造方法,通過=符號自動把 基本類型 轉換為 類類型 就叫裝箱
package digit; public class TestNumber { public static void main(String[] args) { int i = 5; //基本類型轉換成封裝類型 Integer it = new Integer(i); //自動轉換就叫裝箱 Integer it2 = i; } }
自動拆箱
不需要調用Integer的intValue方法,通過=就自動轉換成int類型,就叫拆箱
package digit; public class TestNumber { public static void main(String[] args) { int i = 5; Integer it = new Integer(i); //封裝類型轉換成基本類型 int i2 = it.intValue(); //自動轉換就叫拆箱 int i3 = it; } }
int的最大值,最小值
int的最大值可以通過其對應的封裝類Integer.MAX_VALUE獲取
應該是自動裝箱必須一一匹配。
但是拆箱,只要拆出來的基本類型,其範圍小於左側基本類型的取值範圍,就可以。
比如:
Byte b = 5; Short s = 5; Integer i = 5; Long l = 5l; long x; x= b; x=s; x=i; x=l;
右邊是類類型,左邊的x是long基本類型,那麽也可以自動拆箱。
以x=b為例,b自動拆箱出來時byte基本類型,byte的取值範圍小於long,那麽就不會出現編譯錯誤。
java之裝箱拆箱