java的基本資料型別與封裝類
阿新 • • 發佈:2018-11-07
部落格轉自https://blog.csdn.net/maggiedorami/article/details/7944459
Integer是一個類,是int的封裝類。
int是基本資料型別。
Integer就是把一個int型別的封裝成一個類。
就可以用Integer打點來呼叫方法。
java提供了一組基本資料型別,包括boolean, byte, char, short, int, long, float, double, void. 同時,java也提供了這些型別的封裝類,分別為Boolean, Byte, Character, Short, Integer, Long, Float, Double, Void。
既然提供了基本型別,為什麼還要使用封裝類呢?
- 某些情況下,資料必須作為物件出現,此時必須使用封裝類來將簡單型別封裝成物件。
- 比如,如果想使用List來儲存數值,由於List中只能新增物件,因此我們需要將資料封裝到封裝類中再加入List。在JDK5.0以後可以自動封包,可以簡寫成list.add(1)的形式,但新增的資料依然是封裝後的物件。
- 另外,有些情況下,我們也會編寫諸如func(Object o)的這種方法,它可以接受所有型別的物件資料,但對於簡單資料型別,我們則必須使用封裝類的物件。
- 某些情況下,使用封裝類使我們可以更加方便的操作資料。比如封裝類具有一些基本型別不具備的方法,比如valueOf(), toString(), 以及方便的返回各種型別資料的方法,如Integer的shortValue(), longValue(), intValue()等。
基本資料型別與其對應的封裝類由於本質的不同,具有一些區別:
- 基本資料型別只能按值傳遞,而封裝類按引用傳遞。
- 基本型別在堆疊中建立;而對於物件型別,物件在堆中建立,物件的引用在堆疊中建立。基本型別由於在堆疊中,效率會比較高,但是可能會存在記憶體洩漏的問題。