1. 程式人生 > 其它 >Java基礎04——型別轉換

Java基礎04——型別轉換

型別轉換

  • 由於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
 }
}

注意點

  1. 不能對布林值轉換

  2. 不能把物件型別轉換為不相干的型別

  3. 在把高容量轉換低容量的時候,強制轉換

  4. 轉換的時候可能存在記憶體溢位,或者精度問題