Java 得資料型別可分為,Primitive Type (基本資料型別)及Reference Type(參考資料類別)
首先要了解 一般在記憶體中得儲存位置及方式。
Global
負責存取static的類別成員變數,因此被放置在Global,不會因建立出一個新的物件,而配置一個新的類別成員供該物件存取。因此此處存放著,不希望被丟棄的類別物件
Stack
存放在JAVA程式中宣告的基本資料型別 及 參考內容值(object reference variable),當宣告產生時,Stack將有指標直接指向該變數,所以在存取該變數資料內容時的處理速度比較快。
Heap
存放參考資料型別的物件實體
宣告基本型態資料型別是在記憶體中的Strack中直接放入變數內容 (如下圖)
基本資料型別可分為四大類
1.字元(char)
2.整數(byte、short、int及long)
3.浮點數(float及double)
4.布林值(boolean)
資料類別 |
資料型態 |
位元組數(bytes) |
位元數(bits) |
資料範圍 (Range) |
初始值 |
字元 |
char (Unicode) |
2 |
16 |
‘\u0000’ ~ ‘\uFFFF’ 0 ~ 65535 |
‘\u0000’ |
整數 |
byte |
1 |
8 |
-128 ~ 127 |
0 |
short |
2 |
16 |
-32,768 ~ 32767 |
0 |
|
int |
4 |
32 |
-2的31次方 ~ 2的31次方-1 |
0 |
|
long |
8 |
64 |
-2的63次方 ~ 2的63次方-1 |
0L |
|
浮點數 |
float |
4 |
32 |
-3.4E+38 ~ 3.4E+38 |
0.0F |
double |
8 |
64 |
-1.7E+308 ~ 1.7E+308 |
0.0D |
|
布林值 |
boolean |
1 |
8 |
只能有 true 或 false |
false |
^^^ int
^^^^^ double
基本資料型別的資料轉換
Java中有兩種轉換方式,一種是Implicit Casting(隱式轉換) 、一種是Explicit Casting(強行轉換)兩種。
隱式轉換
強行轉換
257 是 int資料型別,位元組數是 32 bits
經過(byte)強制型別轉換後會切掉前 24 個 bits 留下剩餘的 8 個 bits,因為 byte 的資料型別內容長度是 8 個 bits ,因此值也會只剩下1。
.... 0001 0000 0001
28中的1 會被刪除
