總結(jié)就是八個(gè)字:
數(shù)據(jù)2型,四類八種(個(gè)人理解,僅供參考)
解析圖如下:
基本數(shù)據(jù)類型:
1.邏輯類:boolean 布爾類型,它比較特殊,布爾類型只允許存儲(chǔ)true(真)或者false(假),不可以用0或者非0表示 可以使用 1 bit 來存儲(chǔ),但是具體大小沒有明確規(guī)定。JVM 會(huì)在編譯時(shí)期將 boolean 類型的數(shù)據(jù)轉(zhuǎn) 換為 int,使用 1 來表示 true,0 表示 false。JVM 支持 boolean 數(shù)組,但是是通過讀寫 byte數(shù) 組來實(shí)現(xiàn)的。
2.文本類:char 字符類型,它在內(nèi)存中占用2個(gè)字節(jié),也就是16 bit,因?yàn)閖ava本身的字符集不是用ASCII碼來存儲(chǔ)的, 而是用的16位的Unicode字符集,所以它的字符存儲(chǔ)范圍也就是'u0000 -- uffff',默認(rèn)值呢?就是'u0000'
3.整數(shù)類: 下面從小到大來一一介紹:
byte:可以說是java中最少的數(shù)據(jù)類型了,它在內(nèi)存中占用1個(gè)字節(jié),也就是8位(bit),值得范圍是:-128~127, 也就是-2的7次方到2的7次方減一,默認(rèn)值是0B.
short:短整型,它在內(nèi)存中占用的是2個(gè)字節(jié),16位,值得取值范圍是-32768~32767,也就是-2的15次方到2的15次方減一, 默認(rèn)值也是0S.
int:整型,在內(nèi)存中占4個(gè)字節(jié),32位,值得取值范圍是-2147483648~2147483647,也就是-2的31次方到2的31次方減一, 默認(rèn)值還是0
long:長整型,在內(nèi)存中占8個(gè)字節(jié),64位,值的取值范圍是-2的63次方到2的63次方減一,默認(rèn)值要注意了,因?yàn)槭情L整型, 所以默認(rèn)是雖說是0,但是準(zhǔn)確的說是0L,必須要加上L來表示它是long類型,不加就成了int類型了.
4.浮點(diǎn)類: 不聲明小數(shù)類型的情況下,默認(rèn)為double
float :單精度浮點(diǎn)型, 在內(nèi)存中占4個(gè)字節(jié),32位,主要用來存儲(chǔ)小數(shù)的,但是有限制,有效小數(shù)位只有6~7位,默認(rèn)是0.0f , 取值范圍是:3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同樣,e-45表示 乘以10的負(fù)45次方)
double:雙精度浮點(diǎn)型,在內(nèi)存中占8個(gè)字節(jié),64位,也是用來存儲(chǔ)小數(shù)的,默認(rèn)是0.0,取值范圍是1.797693e+308 到 4.9000000e-324(e+308表示是乘以10的308次方,同樣,e-324表示乘以10的負(fù)324次方)
數(shù)據(jù)類型轉(zhuǎn)換(boolean不參與數(shù)據(jù)類型的轉(zhuǎn)換):
????char(16?bit) |byte(1?bit)?->??short(16?bit)??->?int(32?bit)??->?long(64?bit) |????????????????| ?????float(32?bit)????double(64?bit)
根據(jù)類型所占內(nèi)存大小,小可轉(zhuǎn)大,大轉(zhuǎn)小會(huì)失去精度
引用數(shù)據(jù)類型:
基本類型和引用類型的關(guān)系 | ||
---|---|---|
基本類型 | 二進(jìn)制位數(shù) | 包裝器類(引用類型) |
boolean | 1 | Boolean |
byte | 8 | Byte |
char | 16 | Character |
short | 16 | Short |
int | 32 | Integer |
long | 64 | Long |
float | 32 | Float |
double | 64 | Double |
對于取值范圍,在對應(yīng)的包裝器類中有常量已經(jīng)聲明:
基本類型byte 二進(jìn)制位數(shù):Byte.SIZE最小值:Byte.MIN_VALUE最大值:Byte.MAX_VALUE
基本類型short二進(jìn)制位數(shù):Short.SIZE最小值:Short.MIN_VALUE最大值:Short.MAX_VALUE
基本類型char二進(jìn)制位數(shù):Character.SIZE最小值:Character.MIN_VALUE最大值:Character.MAX_VALUE
基本類型double 二進(jìn)制位數(shù):Double.SIZE最小值:Double.MIN_VALUE最大值:Double.MAX_VALUE
兩者的異同:
1.Java基本類型存儲(chǔ)在棧中,因此它們的存取速度要快于存儲(chǔ)在堆中的對應(yīng)包裝類的實(shí)例對象。從Java1.5開始,JVM就可以完成基本類型和它們對應(yīng)包裝類之間的自動(dòng)轉(zhuǎn)換。因此我們在賦值、參數(shù)傳遞以及數(shù)學(xué)運(yùn)算的時(shí)候就可以像使用基本類型一樣使用它們的包裝類,但這并不意味著你可以通過基本類型調(diào)用它們的包裝類才具有的方法。另外,所有基本類型(包括void)的包裝類都使用了final修飾,因此我們無法繼承它們擴(kuò)展新的類也無法重寫它們的任何方法。而引用數(shù)據(jù)類型是存儲(chǔ)在堆中的.
2.基本類型的優(yōu)勢:數(shù)據(jù)存儲(chǔ)相對簡單,運(yùn)算效率比較高
3.包裝類的優(yōu)勢:有的容易,比如集合的元素必須是對象類型,滿足了java一切皆是對象的思想
4.聲明方式不同,基本類型不適用new關(guān)鍵字,而包裝類型需要使用new關(guān)鍵字來在堆中分配存儲(chǔ)空間;
5.存儲(chǔ)方式及位置不同,基本類型是直接將變量值存儲(chǔ)在堆棧中,而包裝類型是將對象放在堆中,然后通過引用來使用;
6.初始值不同,基本類型的初始值如int為0,boolean為false,而包裝類型的初始值為null
7.使用方式不同,基本類型直接賦值直接使用就好,而包裝類型在集合如Collection、Map時(shí)會(huì)使用到
以上就是長沙達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)的小編針對“Java基本數(shù)據(jù)類型有哪些?相關(guān)知識(shí)點(diǎn)總結(jié)”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。