本文目錄一覽:
java包裝類怎樣理解?裝箱與拆箱又怎樣理解?請通俗的解釋一下,舉個例子也行
Java有一個類型系統有兩個部分組成,包含基本類型(byte、char、int、short、long、float、double、boolean)和引用類型。而基本類型則對應着各自的引用類型,稱為裝箱的基本類型。而引用類型對應着各自的基本類型,稱為拆箱的基本類型。對應的類型為:(Byte、Character、Integer、Short、Long、Float、Double、Boolean)
下面一具體例子來說明裝箱與拆箱
//java 1.5之前創建一個Integer對象Integer i = new Integer(10);//java 1.5之後有了裝箱的特性,直接用下列方式生成一個Integer對象//在這個過程中會將int 類型的10自動裝箱成為Integer類型Integer i = 10;//拆箱 輸出的值為20,這個過程中,會先將Integer類型的j自動拆箱為基本類型的10,最後完成運算Integer j = new Integer(10);int k = 10;
System.out.print(j+k);
java 包裝類 自動裝箱問題
Java包裝類,Wrapper~由於在java中,數據類型總共可分為兩大種,基本數據類型(值類型)和類類型(引用數據類型)。基本類型的數據不是對象,所以對於要將數據類型作為對象來使用的情況,java提供了相對應的包裝類。對於8種數據類型的包裝類分別是:
int—Integer
char—Character
float—Float
double—Double
byte—Byte
short—Short
long—Long
boolean–Boolean
所謂裝箱,就是把基本類型用它們相對應的引用類型包起來,使它們可以具有對象的特質,如我們可以把int型包裝成Integer類的對象,或者把double包裝成Double,等等。
所謂拆箱,就是跟裝箱的方向相反,將Integer及Double這樣的引用類型的對象重新簡化為值類型的數據
J2SE5.0後提供了自動裝箱與拆箱的功能,此功能事實上是編譯器來幫您的忙,編譯器在編譯時期依您所編寫的方法,決定是否進行裝箱或拆箱動作。
自動裝箱的過程:每當需要一種類型的對象時,這種基本類型就自動地封裝到與它相同類型的包裝中。
自動拆箱的過程:每當需要一個值時,被裝箱對象中的值就被自動地提取出來,沒必要再去調用intValue()和doubleValue()方法。
自動裝箱,只需將該值賦給一個類型包裝器引用,java會自動創建一個對象。例如:
Integer i=100; //沒有通過使用new來顯示建立,java自動完成。
自動拆箱,只需將該對象值賦給一個基本類型即可。
例如:
int j=i;
int i = 10;
Integer j =new Integer(i); //手動裝箱操作
int k = j.intValue(); //手動拆箱操作
int i = 11;
Integer j = i; //自動裝箱
int k = j //自動拆箱
java 為什麼要有裝箱和拆箱?
把一個基本類型包裝成一個類,一個是可以使這個類型具有很多可以調用的方法。二個是Java向面像對象語言的靠近。其實Java還不算是很純的面向對象的語言。真正的面向對象,是沒有基本數據類型的。它只有一種類型,就是對象。三個是在泛型中,基本類型是不可以做泛型參數的。如:List int list = new ArrayListint ();這是不合法的。你只能這個樣寫ListInteger list = new ArrayListInteger ();也就是要用int型的包裝類類型來解決基本類型不可以做泛型參數的問題 。
一名話,包裝類有更多的方法和用途, 而這是基本類型沒有的!!!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/250867.html