Java之基本資料型別(8種還是9種)-yellowcong
阿新 • • 發佈:2019-01-02
今天看了一下部落格,發現有人說資料型別有9中, 一下子重新整理了我的世界觀,說好的8中基本資料型別,哪來的9種啊,後來發現 void 這孫子也是基本型別(PS:8種還是9種,都說法不一),《Think in Java》這本書上說是9 種,但是人家JAVA的api上說不是,你叫我跟你咋回答,心裡只能說MMP了
基本資料型別
void是不是基本資料型別,那就看你心情了
資料型別 | 大小(位元組) | 預設值 | 封裝類 |
---|---|---|---|
byte | 1 | 0 | |
short | 2 | 0 | Short |
int | 4 | 0 | Integer |
long | 8 | 0l | Long |
float | 4 | 0.0f | Float |
double | 8 | 0.0d | Double |
char | 2 | null | Char |
boolean | 1/8 | false | Boolean |
void | – | – | Void |
比如說byte儲存的資料長度吧,2^(1*8) -1 =255長度,為啥還要-1呢,因為我們算的都是二進位制(1 0000 0000,2^(1*8) )的值,所以自然需要 -1得到1位元組的長度。
因為 1byte 的資料長度是 1111 1111 ,折換成十進位制 就是255了
基本型別和引用型別區別
一種是基本型別,一種是引用型別。兩種的本質區別就是:基本型別是在堆疊處分配空間存“值”。但是引用型別,是在堆裡面分配空間存“值”。Void是不能new出來,也就是不能在堆裡面分配空間存對應的值。那就是一開始在堆疊處分配好空間了。所以,有些人將Void歸成基本型別,也有道理。
在堆中建立的引用記憶體,不能隨著呼叫結束就釋放,需要等著GC來回收,而在棧記憶體中,隨著引用呼叫完,就銷燬了,所以棧記憶體中,引用了基本資料型別,效率高