類型轉換:
1、存在某種類型的變量賦值給另一種類型的變量;
2、存在不同類型的數據一起運算。
自動類型轉換:
類型范圍小的變量,可以直接賦值給類型范圍大的變量。
byte類型賦值給int類型,就是自動類型轉換。
package cn.ensource.type;public class TypeConversion {public static void main(String[] args) {// 目標:理解自動類型轉換機制byte a = 12;int b = a;System.out.println(a);System.out.println(b);}
}
自動類型轉換在計算機中的執行原理:
自動類型轉換的其他形式:
byte->short(char)->int->long->float->double
char類型占兩個字節。
C語言中的char是1個字節。
//int -> double
int c = 100;
double d = c;System.out.println(d);
?輸出結果是100.0
// char -> intchar ch = 'a';int i = ch;System.out.println(i);
輸出結果是:97
開發的過程中,存在不同類型的變量賦值給其他類型的變量。
什么是自動類型轉換:
范圍小的變量,可以直接賦值給類型范圍大的變量。
表達式的自動類型轉換:
在表達式中,小范圍類型的變量,會自動轉換成成表達式較大范圍的類型,再參與運算。
byte、short、char->int->long->float->double
注意事項:
表達式的最終結果類型由表達式中的最高類型決定。
package cn.ensource.type;public class TypeConversionDemo2 {private static 2 d;public static void main(String[] args) {// 目標:掌握表達式的自動類型轉換機制byte a = 10;int b = 20;long c = 30;long rs = a + b + c;System.out.println(rs);double rs2 = a + b + 1.0;System.out.println(rs2);byte i = 10;short j = 20;short k = i + j;System.out.println(k);}
}
在表達式中,byte、short、char是直接轉換成int類型參與運算的。
面試題:
byte、short、char在表達式都是直接轉換成int類型參與運算的。
官方直接提升為int。能夠兼容一個較大的結果。
表達式的最終結果類型是由誰決定的?
最終類型是由表達式中的最高類型決定的。
表達式的有哪些類型轉換是要注意的?
byte、short、char是直接轉換成int類型參與運算的。