在Java里面,整體上把數(shù)據(jù)類型分為了兩大類:基本類型(primitive types) 8個 和 引用類型(reference types) 5個,我們先看完整分類圖如下所示:
接下來壹哥會對基本類型和引用類型分別進行介紹。
1. 基本類型
基本類型 是Java中預定義的類型,有相應的保留關(guān)鍵字來表示,具有明確的取值范圍和數(shù)學行為,表示了真實的數(shù)字、字符和整數(shù)。基本類型的數(shù)據(jù)都是單個值,而不是復雜的對象,所以基本類型并不是面向?qū)ο蟮模@主要是出于效率方面的考慮。但是同時Java中也為基本類型提供了對應的對象版本,即基本類型的包裝類(wrapper)。我們可以直接使用這些基本類型,也可以使用基本類型的構(gòu)造數(shù)組或者其他自定義類型。
基本類型 包括布爾(boolean)類型、數(shù)值類型(numeric types),數(shù)值類型又分為 整型(integer types) 和 浮點型(floating-point type)。整型有5種:byte、short、int、long、char(char本質(zhì)上是一種特殊的int);浮點類型有float和double。所以基本數(shù)據(jù)類型分類如下:
byte、short、int、long、float(單精度)、double(雙精度)、char、boolean
基本類型具體信息表:
2. 引用類型
引用類型(The value of reference types are references to objects)中的引用,一般是指某個對象的內(nèi)存地址,其中對象是動態(tài)創(chuàng)建的類實例或者動態(tài)創(chuàng)建的數(shù)組,另外Java語言本身不支持C++中的結(jié)構(gòu)體(struct) 或聯(lián)合體(union) 等數(shù)據(jù)類型,這種復合數(shù)據(jù)類型一般都是通過類或接口進行構(gòu)造。引用數(shù)據(jù)類型分類如下:
類、接口、數(shù)組、枚舉、注解
3. 關(guān)于null值
另外還有一個特殊的值null,壹哥這里再給各位解釋一下。null是一種特殊的type,但是你不能聲明一個變量為null類型,null type的唯一取值就是null。null可以賦值給任意的引用類型或者轉(zhuǎn)化成任意的引用類型。我們在開發(fā)時,一般是把null當做常量字面值,這個字面值可以賦值給任意的引用類型。
4. 基本類型與引用類型的區(qū)別
不論是基本數(shù)據(jù)類型還是引用類型,他們都會先在棧中分配一塊內(nèi)存。對于基本類型來說,這塊內(nèi)存區(qū)域中包含的是基本類型的具體數(shù)據(jù)內(nèi)容;對于引用類型來說,這塊內(nèi)存區(qū)域中包含的是指向真正內(nèi)容的指針,而真正的內(nèi)容則被手動的分配在了堆上。
更多關(guān)于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經(jīng)驗,課程大綱更科學更專業(yè),有針對零基礎的就業(yè)班,有針對想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實現(xiàn)java程序員夢想。