可以分為:自動轉換、強制轉換
Java中的自動轉換
特點:
1、系統自動完成的,不需要程序員手動修改代碼
2、將取值范圍小的類型 自動提升為 取值范圍大的類型
具體實例
public static void main(String[] args) { int a = 1; byte b = 2; byte c = b + a; // 報錯 //int類型和byte類型運算,結果是int類型 int d = b + a; System.out.println(d); }
注意:
整數類型直接寫會默認為int
小數類型直接寫默認為double
類型的范圍大小:byte < short(char) < int < long < float < double
Java中的強制轉換
特點:
1、需要程序員手動修改代碼
2、語法:
范圍小的類型 變量名 = (范圍小的類型)范圍大的類型的數據
3、從范圍小 到 范圍大(將取值范圍大的類型
強制轉換成取值范圍小的類型
。)
具體實例
實例1
int i = 1.5; // 錯誤
double
類型內存8個字節,int
類型內存4個字節。1.5
是double
類型,取值范圍大於int
。可以理解為double
是8升的水壺,int
是4升的水壺,不能把大水壺中的水直接放進小水壺去。
想要賦值成功,只有通過強制類型轉換,將double
類型強制轉換成int
類型才能賦值。
實例2
int類型和double類型運算,結果是double類型,int類型會提升為double類型
public static void main(String[] args) { int i = 1; double d = 2.5; double e = d+i; System.out.println(e); }
注意:
強制類型轉換可能會造成數據的丟失哦,小伙伴們在應用時一定要慎重哦!
Boolean類型不能發生強制類型轉換
byte \ short \ char 這三種數據類型發生數學運算時,會自動提升為int類型