Java基礎回顧--基本數據類型包裝類 2

基本數據類型包裝類 1

有了基本類型之後爲什麼還要有包裝器類型呢?我們知道Java是一個面相對象的編程語言,基本類型並不具有對象的性質,爲了讓基本類型也具有對象的特徵,就出現了包裝類型(如我們在使用集合類型Collection時就一定要使用包裝類型而非基本類型),它相當於將基本類型“包裝起來”,使得它具有了對象的性質,並且爲其添加了屬性和方法,豐富了基本類型的操作。

1、Java 提供兩種不同的類型:基本類型(內置類型)和引用類型(封裝類型)。

Java8種基本數據類型總結

序號

數據類型

 

封裝類

默認值

可表示數據範圍

1

byte()

1字節

Byte

0

-128~127

2

short(短整數)

2字節

Short

0

-32768~32767

3

int(整數)

4字節

Integer

0

-2147483648~2147483647

4

long(長整數)

8字節

Long

0

-9223372036854775808~9223372036854775807

5

float(單精度)

7

Float

0.0

1.4E-45~3.4028235E38

6

double(雙精度)

15

Double

0.0

4.9E-324~1.7976931348623157E308

7

char(字符)

2字節

Character

0~65535

8

boolean

 

Boolean

flase

truefalse

 

2、int是基本類型,直接存數值。如:int i = 5;

Integer是封裝類型,產生對象時用一個引用指向這個對象。如:Integeri = new Integr(5)

3、Java把內存劃分成兩種:一種是棧內存,另一種是堆內存。
在函數中定義的一些基本類型的變量和對象的引用變量都是在函數的棧內存中分配 ,而實際的對象是在存儲堆內存中 。即 :

int i = 5;//直接在棧中分配空間 
Integer i = new Integr(5);//對象是在堆內存中,而i(引用變量)是在棧內存中 。在堆中分配的內存,由java虛擬機的自動垃圾回收器來管理.。
4、當需要往ArrayList,HashMap中放東西時,像int,double這種基本類型是放不進去的,因爲容器都是裝object(對象類型)的,這就需要這些基本類型的封裝類了,Java中每種基本類型都有相應的封裝類。

二者可以相互轉換:

1 Character ch = new Character('x');
2 char c = ch;
3 char c = 'c';
4 Character ch = new Character(c);

二者之間也存在一些區別:

1.聲明方式不同,基本類型不適用new關鍵字,而包裝類型具有對象的性質需要使用new關鍵字來在堆中分配存儲空間;
2.存儲方式及位置不同,基本類型是直接將變量值存儲在堆棧中,而包裝類型是將對象放在堆中,然後通過引用來使用;
3.初始值不同,基本類型的初始值如int爲0,boolean爲false,而包裝類型的初始值爲null
4.使用方式不同,基本類型直接賦值直接使用,而包裝類型在集合Collection、Map時會使用到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章