■ 自動類型轉換:容量小的數據類型可以自動轉換為容量大的數據類型。
■ 特例:可以講整型常量直接賦給byte,short,char等類型變量,而不需要強制類型轉換,只要不超出其表數范圍。
■ 強制類型轉換(cast):又稱為造型,用於顯示的轉換一個數值的類型,在有可能丟失信息的情況下進行的轉換時通過造型來完成的,但可能造成精度降低或溢出。
■ 強制類型轉換的語法格式:“(type) var”,運算符“()”中的type表示將值var想要轉換成的目標數據類型。
■ 當將一種類型強制轉換成另一種類型,而又超出了目標類型的表示范圍,就會被截斷成為一個完全不同的值。(例:int x = 300; byte y = (byte)x; //值為44)
■ 不能在布爾類型和任何數值類型之間做強制類型轉換。(若需要將布爾類型轉換為數字可以用三目運算符)
■ 基本類型轉換常見錯誤和問題:
①操作比較大的數時,要留意是否溢出,尤其是整數操作時。
int a = 100000000; // 1億 int b = 22; int c = a*b; // 返回的是負數 long c = a*b; // 返回的仍是負數(默認是int,因此結果會轉成int值,再轉成long。但是已經發生了數據丟失) long d = a*((long)*b); // 先將一個因子變成long,整個表達式發生提升,全部用long來計算。
②L和l的問題:
不要命名名字為l的變量;
long類型使用大寫L不要用小寫。
