在Java里面,整體上把數(shù)據(jù)類型分為了兩大類:基本類型(primitive types) 8個(gè) 和 引用類型(reference types) 5個(gè),我們先看完整分類圖如下所示:
接下來壹哥會(huì)對(duì)基本類型和引用類型分別進(jìn)行介紹。
1. 基本類型
基本類型 是Java中預(yù)定義的類型,有相應(yīng)的保留關(guān)鍵字來表示,具有明確的取值范圍和數(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語言本身不支持C++中的結(jié)構(gòu)體(struct) 或聯(lián)合體(union) 等數(shù)據(jù)類型,這種復(fù)合數(shù)據(jù)類型一般都是通過類或接口進(jìn)行構(gòu)造。引用數(shù)據(jù)類型分類如下:
類、接口、數(shù)組、枚舉、注解
3. 關(guān)于null值
另外還有一個(gè)特殊的值null,壹哥這里再給各位解釋一下。null是一種特殊的type,但是你不能聲明一個(gè)變量為null類型,null type的唯一取值就是null。null可以賦值給任意的引用類型或者轉(zhuǎn)化成任意的引用類型。我們?cè)陂_發(fā)時(shí),一般是把null當(dāng)做常量字面值,這個(gè)字面值可以賦值給任意的引用類型。
4. 基本類型與引用類型的區(qū)別
不論是基本數(shù)據(jù)類型還是引用類型,他們都會(huì)先在棧中分配一塊內(nèi)存。對(duì)于基本類型來說,這塊內(nèi)存區(qū)域中包含的是基本類型的具體數(shù)據(jù)內(nèi)容;對(duì)于引用類型來說,這塊內(nèi)存區(qū)域中包含的是指向真正內(nèi)容的指針,而真正的內(nèi)容則被手動(dòng)的分配在了堆上。
更多關(guān)于“Java培訓(xùn)”的問題,歡迎前往云和數(shù)據(jù)官網(wǎng)咨詢。云和數(shù)據(jù)已有8年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專業(yè),全程面授課程,項(xiàng)目制教學(xué)助力你實(shí)現(xiàn)java程序員夢(mèng)想。