Java語言中數據類型之間的自動類型轉換是由優先關系從低級數據類型轉換成高級數據類型,boolean類型數據和其他七種不能互相轉換
從容量小的類型自動轉換為容量大的數據類型
byte,short,char<int<long<float<double;
基本類型之間比較時低精度自動轉化成高精度
值得注意的是byte,char,short都不會存在隱式轉換,相互之間只能進行強制類型轉換。
他們三者在計算時首先轉換為int類型。
byte b1=1; byte b2=2; byte b3=(byte)(b1+b2);
b1+b2是整形,需要強制轉換為byte類型。
強制轉換時可能造成精度降低或溢出
double d2=1e200; float f2=(float)d2; System.out.println(f2);
產生溢出
單引號是字符型
常用ASCII碼值:空格為32;數字0為48;“A”為65;“a”值為97
public class TestSort{
public static void main(String args[]){
int x='a';//不會產生編譯錯誤,因為'a'賦給x是自動轉換
System.out.println(x);
char ch=x;//會產生編譯錯誤,因為x類型比ch優先級高,必須強制類型轉換,但是在C語言中這樣是可以的
System.out.println(ch);
}
}
