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