8種基本資料型別及取值範圍
整型:
byte:-2^7 ~ 2^7-1,即-128 ~ 127。1位元組。Byte。末尾加B
short:-2^15 ~ 2^15-1,即-32768 ~ 32767。2位元組。Short。末尾加S
有符號int:-2^31 ~ 2^31-1,即-2147483648 ~ 2147483647。4位元組。Integer。
無符號int:0~2^32-1。
long:-2^63 ~ 2^63-1,即-9223372036854774808 ~ 9223372036854774807。8位元組。Long。末尾加L。(也可以不加L)
浮點型:
float:4位元組。Float。末尾加F。(也可以不加F)
double:8位元組。Double。
字元型:
char:2位元組。Character。
布林型:
boolean:Boolean。
型別轉換:
boolean型別與其他基本型別不能進行型別的轉換(既不能進行自動型別的提升,也不能強制型別轉換), 否則,將編譯出錯。
byte型不能自動型別提升到char,char和short直接也不會發生自動型別提升(因為負數的問題),同時,byte當然可以直接提升到short型。
兩個數值進行二元操作時,會有如下的轉換操作:
如果兩個運算元其中有一個是double型別,另一個操作就會轉換為double型別。
否則,如果其中一個運算元是float型別,另一個將會轉換為float型別。
否則,如果其中一個運算元是long型別,另一個會轉換為long型別。
否則,兩個運算元都轉換為int型別。
當對小於int的資料型別(byte, char, short)進行運算時,首先會把這些型別的變數值強制轉為int型別進行計算,最後會得到int型別的值。因此,如果把2個short型別的值相加,最後得到的結果是int型別,如果需要得到short型別的結果,就必須顯示地運算結果轉為short型別。
1 //編譯出錯。正確的寫法是:short s1 = 1;s1 = (short)(s1+1) 2 short s1 = 1;s1 = s1+1; 3 //編譯通過 4 short s1 = 1;s1 += 1;