java中八種基礎資料型別 (Elementary Data Type)以及它們的封裝類,String類型的一些理解__Java

來源:互聯網
上載者:User

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

    首先,八種基礎資料型別 (Elementary Data Type)分別是:int、short、float、double、long、boolean、byte、char;它們的封裝類分別是:Integer、Short、Float、Double、Long、Boolean、Byte、Character。

    因為對基礎資料型別 (Elementary Data Type)封裝之後,封裝類有可以有方法和屬性,然後就可以利用這些方法和屬性來處理資料,比如Ingeter對象中有parseInt(String s),可以把字串轉換為int類型等。我們都知道有些類型的資料會有預設值,基礎資料型別 (Elementary Data Type)跟封裝類型的預設值是不一樣的,比如int i  ,如果不賦值i預設為0;但是Integer j ,如果不賦值,則j 為null;因為封裝類產生的是對象,而對象預設值為null。

     tip:String 類型不是基礎資料型別 (Elementary Data Type),它實際上是final修飾,所以也不可以繼承。

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

     如果用=作比較,則它們不相等,因為“=”比較的是基礎資料型別 (Elementary Data Type)的值是否相等或者比較對象是否為同一個對象;而變數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/wanghang/p/6298924.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.