java的基本數據類型一共有8種。其中:(每種類型后面列出了java中的該類型的字面量)
四種整型:
int 4字節; 12 +12 -12 077 0xFF 0b101(JDK7中支持的二進制表示) 字面范圍:0x800000000 --> 0x7FFFFFFF
short 2字節; 2個字節內的int字面量可以認為是short類型的字面量,可以給short變量賦值 字面范圍:(short)0x8000 --> 0x7FFF
long 8字節; int字面量形式后加字母L 字面范圍:0x8000000000000000L --> 0x7FFFFFFFFFFFFFFFL
byte 1字節; 1個字節內的int字面量可以認為是byte類型的字面量,可以給byte變量賦值 字面范圍:(byte)0x80 --> 0x7F
Java中沒有所謂的無符號整型數。
public class Test { public static void main(String[] args) { short shortNum = (short)0x8000; int intNum = 0x80000000; long longNum = 0x7FFFFFFFFFFFFFFFL; byte byet_num = (byte)0x80;
System.out.println(shortNum);//-32768 System.out.println(intNum);//-2147483648 System.out.println(longNum);//9223372036854775807 System.out.println(byet_num);//-128 } }
如果short和byte在代碼中不用強轉,則會報錯,那是因為字面量的值超出了變量所能表示的范圍。通過強轉,可以把int的字面量(四個字節)截取后兩個(short)或一個(byte)字節來賦值,作為當前變量的值。然后根據補碼的計算規則確定當前的值的大小。上面賦的是兩個最小值。
兩種浮點型:
float 4字節 整型和小數后加字母F或f的數,也可以是科學計數法表示的數加F或f。float能表示的最大最小值可以借助Float類的MAX_VALUE和MIN_VALUE這兩個域來獲取。
double 8字節 整型或小數后加字母D或d的數,也可以是科學計數法表示的數加D或d,或是單純的小數。double變量能表示的最大最小值同樣也可以借助Double類。
一種用於表示Unicode編碼的字符單元的字符類型:
char 2字節 單引號里的單個字符。
一種用於表示真值的類型:
boolean 1/8字節(1位/1bit) true和false。