在Java的世界中凡简,有一些數(shù)據(jù)類型之間是可以相互轉換的。一種是自動類型轉換呀闻,一種是強制類型轉換化借。
一、自動類型轉換
我們先從自動類型轉換開始講起总珠。當我們把一個能表示的數(shù)據(jù)范圍較小的數(shù)值或者變量屏鳍,賦值給另外一個能表示的數(shù)據(jù)范圍較大的變量時,會發(fā)生自動類型轉換局服。我們以實例說明:
double a = 7; // 將int類型的7直接賦值給double類型的變量
System.out.println(a); // 輸出7.0
說明:數(shù)字7是int類型钓瞭,當賦值給double類型的變量a時,從輸出可以看到淫奔,a的值時7.0山涡,說明此時已經發(fā)生了自動類型轉換。
二唆迁、強制類型轉換:
應用場景:把一個表示數(shù)據(jù)范圍較大的數(shù)值或者變量賦值給另外一個表示數(shù)據(jù)范圍較小的變量鸭丛,此時就需要強制類型轉換。
強制類型轉換的格式:目標數(shù)據(jù)類型 變量名 = (目標數(shù)據(jù)類型)值或者變量;
例子:
double a = 7.7;
int b = (int) a; // 將double類型的a強制轉換為int類型
System.out.println(b); // 輸出7(小數(shù)位直接舍棄)
幾點說明:
1唐责、char類型的數(shù)據(jù)轉換為int類型是按照碼表中對應的int值進行計算的鳞溉。比如在ASCII碼表中,'a'對應97鼠哥。
int a = 'a';
System.out.println(a); // 將輸出97
2熟菲、整數(shù)默認是int類型,byte朴恳、short和char類型數(shù)據(jù)參與運算均會自動轉換為int類型抄罕。
byte b1 = 10;
byte b2 = 20;
byte b3 = b1 + b2;
// 第三行代碼會報錯,b1和b2會自動轉換為int類型于颖,計算結果為int呆贿,int賦值給byte需要強制類型轉換。
// 修改為:
int num = b1 + b2;
// 或者:
byte b3 = (byte) (b1 + b2);
- boolean類型不能與其他基本數(shù)據(jù)類型相互轉換森渐。
三做入、數(shù)據(jù)范圍表
最后,給出一張數(shù)據(jù)范圍表章母,從小到大:
數(shù)據(jù)范圍表(從小到大)