標籤:3.4 boolean 類型 min e30 儲存 數組 char 根據
眾所周知,java的基本類型有8種,分別是byte,short,int,long,float,double,char,boolean
根據類型劃分,又可分為數字類型,浮點型,字元型,布爾型四種。
其中byte,short,int,long為數字類型,float,double為浮點型,char為字元型,布爾型只有boolean。
| 類型 |
基本類型 |
佔用位元組數 |
MIN_VALUE |
MAX_VALUE |
| 數字 |
byte |
1 |
-128 |
127 |
| short |
2 |
-32768 |
32767 |
| int |
4 |
-2147483648 |
2147483647 |
| long |
8 |
-9223372036854775808 |
9223372036854775807 |
| 浮點 |
float |
4 |
1.4E-45 |
3.4028235E38 |
| double |
8 |
4.9E-324 |
1.7976931348623157E308 |
| 字元 |
char |
2 |
0 |
65535 |
| 布爾 |
boolean |
1 or 4 |
|
|
關於boolean佔用位元組數,這裡要特殊說明一下。
從記憶體來看,只佔一個bit。編譯後boolean類型的值只有true or false,即0和1表示,只佔一個bit。
雖然編譯後只佔一位,但是電腦處理的最小單位是位元組,即8個bit。因此不足的補零。二進位儲存中,1表示為0000 0001,0表示為0000 0000,由此看來,boolean佔用一個位元組。
從JVM角度來描述,boolean類型又佔4個位元組。JVM規範中,沒有提供boolean位元組碼指令,在處理java中boolean類型數值時,將其轉換為int進行處理,boolean數組將轉為byte數組。由此來看,boolean類型佔用4位元組。
關於JVM處理boolean值時,為何將其轉換為int類型?
對於32位CPU來說,處理資料為32位,便於更高效的儲存。
java基礎之基礎資料型別 (Elementary Data Type)