我之因此寫這篇博客,是由於我忽然意識到基礎的重要性,特別對於那些基礎的東西,每每可能成爲你之後面試的絆腳石,因此如今咱們就必須清除這些障礙,下面我簡單的總結一下Java的數據類型,你們看了就當作複習吧!linux
Java語言支持兩種類型:基本類型(Primitive Type)和引用類型(Reference Type),下面用一張圖片略略展現一下:面試
整數類型:windows
這裏我把byte、short、int、long、char,我之因此把char概括進整數類型,由於它在內存中的存儲方式也是跟其餘整數類型的同樣,只不過是在數值在拿出來的時候轉化成特定的字符而已。spa
下面咱們看看這些類型的表示範圍:code
類型 | 內存佔用空間 | 範圍 |
byte | 1個字節 | -2^7 - 2^7-1 |
short | 2個字節 | -2^15 - 2^15-1 |
int | 4個字節 | -2^31 - 2^31-1 |
long | 8個字節 | -2^63 - 2^63-1 |
char | 2個字節 | 0 - 2^16 |
從上面咱們能夠看出幾點:blog
1.Java數據類型的範圍是規定的,不管在windows仍是linux,都同樣,這樣就保證了跨平臺性。圖片
2.Java數據沒有像C語言那樣有signed和unsigned之分。內存
3.char類型沒有負數的概念。博客
Java中整數的表達形式有兩種必須掌握的,就是八進制和十六進制,八進制以0開頭,十六進制以0x或者0X開頭,其中10-15分別用a-f來(不區分大小寫)表示。it
1 public class Scale { 2 3 public static void main(String[] args) { 4 5 /** 6 * 八進制數 7 * @author Guo 8 */ 9 int a = 023; 10 System.out.println(a); 11 12 /** 13 * 十六進制 14 * @author Guo 15 */ 16 int b = 0x32ac; 17 System.out.println(b); 18 } 19 }
Java對於超出範圍的數對怎麼對待呢?
1 public class OutOfBound { 2 3 public static void main(String[] args) { 4 5 /** 6 * 這裏輸出127 7 * @author Guo 8 */ 9 byte a = 127; 10 System.out.println(a); 11 12 /** 13 * 這裏輸出了-128 14 * @author Guo 15 */ 16 byte b = (byte) 128; 17 System.out.println(b); 18 } 19 }
Java對於超出範圍的數,依然是按照補碼的規則就是計算,就好像在一個範圍內循環的感受。
浮點類型:
Java的浮點類型有兩種:float和double,浮點類型有固定的表示範圍和字段長度,字段的長度也是與平臺無關
數據類型 |
內存佔用空間 |
表示範圍 |
float |
4個字節 |
-3.403E38-3.403E38 |
double |
8個字節 |
-1.798E308-1.798E308 |
對於float類數值,第1位是符號位,接下來8位表示指數,再接下來的23位表示尾數;
對於double型數值,第1位是符號位,接下來11位表示指數,再接下來的52位表示尾數。
布爾類型:
布爾型只有一個boolean類型,用於表示邏輯上的真假,在Java中,boolean數值只有true或者false
空類型(null Type):
就是null值的類型,這種類型沒有名稱,由於null類型沒有名稱,因此不可能聲明一個null類型的變量或者轉換到null類型,空引用(null)是null類型變量惟一的值,空引用能夠轉成任何引用類型。