Java基礎04——型別轉換
阿新 • • 發佈:2022-01-11
型別轉換
-
由於Java是強型別語言所以要進行有些運算的時候的,需要用到型別轉換。
低 ------------------------------------------ 高 byte,short,char-> int -> long -> float -> double
-
運算中,不同型別的資料先轉化為同一型別,然後進行運算。
JAVA基本型別之間轉換的兩種方式:
1. 強制型別轉換(高 ——> 低)
-
語法:
(需要轉換成的型別) 變數名
-
示例:
public class Test { public static void main(String[] args) { int a = 127; // 強制轉換 (型別)變數名 高-低 byte b = (byte) a; System.out.println("a = " + a);// 127 System.out.println("b = " + b);// -127 } }
2. 自動型別轉換(低 ——> 高)
-
語法:
直接等於
-
示例:
public class Test { public static void main(String[] args) { int a = 128; // 自動轉換 低 - 高 double b = a; System.out.println("a = " + a);// 128 System.out.println("c = " + c);// 128.0 } }
記憶體溢位
如下程式碼所示:
public class Test { public static void main(String[] args) { /* byte是8位1位元組,所表示十進位制數的範圍為 -128——127 int是32位4位元組,所表示十進位制數的範圍為 -2147483648—— 2147483647 */ int a = 128; // 強行轉換為導致記憶體溢位,最終輸出為-128 byte b = (byte) a; System.out.println("a = " + a);// 128 System.out.println("b = " + b);// -128 } }
注意點
-
不能對布林值轉換
-
不能把物件型別轉換為不相干的型別
-
在把高容量轉換低容量的時候,強制轉換
-
轉換的時候可能存在記憶體溢位,或者精度問題