1. 程式人生 > >Java之基本資料型別(8種還是9種)-yellowcong

Java之基本資料型別(8種還是9種)-yellowcong

今天看了一下部落格,發現有人說資料型別有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來回收,而在棧記憶體中,隨著引用呼叫完,就銷燬了,所以棧記憶體中,引用了基本資料型別,效率高