1. 程式人生 > >java八種基本資料型別的大小,以及他們的封裝類

java八種基本資料型別的大小,以及他們的封裝類

   在我們面試或者考試過程中經常會考到八種基本資料型別以及它們的封裝類,那麼有哪八種基本資料型別呢?它們的封裝類又是什麼呢?

    首先,八種基本資料型別分別是:int、short、float、double、long、boolean、byte、char;它們的封裝類分別是:Integer、Short、Float、Double、Long、

Boolean、Byte、Character。

    因為對基本資料型別封裝之後,封裝類有可以有方法和屬性,然後就可以利用這些方法和屬性來處理資料,比如Ingeter物件中有parseInt(String s),可以把字串轉換

為int型別等。我們都知道有些型別的資料會有預設值,基本資料型別跟封裝型別的預設值是不一樣的,比如int i  ,如果不賦值i預設為0;但是Integer j ,如果不賦值,則j 

為null;因為封裝類產生的是物件,而物件預設值為null。

    常用的方法int intValue()、static Integer valueOf(int i)、String toString()、static Integer parseInt(String s)。

     tip:String 型別不是基本資料型別,它實際上是final修飾,所以也不可以繼承。

     String 型別的變數通常有兩種賦值方式:一種直接賦值,例如String a = "hello world";另一種是用構造方法,例如 String b = new String ("hello world");那麼這裡的a 和b是否相等呢?他們又有什麼不同 呢?

     如果用=作比較,則它們不相等,因為“=”比較的是基本資料型別的值是否相等或者比較物件是否為同一個物件;而變數a和變數b指向的是兩個不同的物件,為什麼這麼說

呢?先來理解一下2個變數的賦值過程,對於表示式String a = "hello world",會先建立一個字串物件“hello world”,而這個字串實際上是放在字串緩衝區中,然後

把a指向這個物件;而對於String b = new String("hello world");則會建立兩個物件一個是“hello world”這個放在字串緩衝區中的,另一個是new 方法構造出來的對

象new String() 這個物件,新物件中儲存的是“hello world”物件罷了,這個物件是放在堆記憶體中,而b 指向這個new String ()物件,這顯然是不同的兩個物件,所以他們

用 “=”比較的結果為false。

如果用equals()方法比較,這結果為true,因為equals()方法比較的是物件的內容,它們的內容都為“hello world”。

 另外值得提醒的是,字串緩衝區中對相同的字串只會存一次。假如我們同時寫了String a ="hello world";String b = new String("hello world");那麼字串緩

衝區實際只有一個hello world 字串,在給b賦值時,會先檢查字串緩衝區中是否有“hello world”這個字串,如果有則不建立,直接new String(),然後賦值,因此這

種情況下,表示式String  b= new String ("hello world")也只建立了一個物件。

轉自:http://www.cnblogs.com/yumo/p/4908252.html