第四課,型別轉換
阿新 • • 發佈:2022-03-16
型別轉換
- 由於Java是強語言型別,所以要進行有些運算的時候,需要用到型別轉換
低 --------------------------------------> 高(位元組)
byte,short,char-> int-> long-> float-> double
- 運算中,不同型別的資料先轉化為同一型別,然後進行運算。
- 強制型別轉換
- 自動型別轉換
測試
public class demo4 { public static void main(String[] args) { int i = 128; byte b = (byte)i;// -128 //強制轉換 (型別)變數名 高--低; //自動轉換 低--高; System.out.println(i); System.out.println(b); /* 注意點: 1.不能對布林值進行轉換; 2.不能把物件型別轉換為不相干的型別; 3.在把高容量轉換到低容量的時候,強制轉換; 4轉換的時候可能存在記憶體溢位,或者精度問題! */ System.out.println("==========================="); System.out.println((int)23.7); System.out.println((int)-45.89F); System.out.println("==========================="); char c ='a'; int d = c+1; System.out.println(d);//輸出98 System.out.println((char)d); } }
輸出:
128
-128
===========================
23
-45
===========================
98
b
測試:
public class demo06 { public static void main(String[] args) { //操作比較大的數時,注意溢位問題; //JDK7 新特性,數字之間可以用下滑鍵分割; int money = 10_0000_0000; //System.out.println(money); int years = 20; int total = money*years;//溢位 long total2 = money*years;//預設是int ,轉換之前已經出問題了; System.out.println(total);//-1474836480 System.out.println(total2);//還是-1474836480 long total3 = money*(long)years; System.out.println(total3);//200_0000_0000 // L l容易被看成1,最好大寫 } }
輸出:
-1474836480
-1474836480
20000000000