天天看點

強制類型轉換

/*

1、小容量可以直接指派給大容量,稱為自動類型轉換。

2、大容量不能直接指派給小容量,需要使用強制類型轉換符進行強轉。

但需要注意的是:加強制類型轉換符之後,雖然編譯通過了,但是運作

的時候可能會損失精度。

*/

public class 強制類型轉換{

  public static void main(string[] args){

    // 不存在類型轉換

    // 100l是long類型字面量,x是long類型字面量。

    long x = 100l;

    // x是long類型,占用8個位元組,而y變量是int類型,占4個位元組。

    // 在java語言中,大容量可以直接指派給小容量嗎?

    // 編譯錯誤資訊:錯誤:不相容的類型:從long轉換到int可能會有損失。

    // int y = x;

    // 大容量轉換成小容量,要想編譯通過,必須加強制類型轉換符,進行強制類型轉換。

    // 底層是怎麼進行強制類型轉換的呢?

    // long類型:000000000 000000000 000000000 000000000 000000000 000000000 000000000 01100100

    // 以上的long類型100l強轉為int類型:會自動将"前面的"4個位元組砍掉。:000000000 000000000 000000000 01100100

    int y = (int)x; // 這個(int)就是強制類型轉換符,進行強制類型轉換。

    // 但是要記住:編譯雖然過了,但是運作可能會損失精度。

    system.out.println(y); //

    //定義變量a int類型,指派100

    int a = 100;

    system.out.println(a);

    int b = a; // 将變量a中儲存的值100複制一份給b變量。

    system.out.println(b);

  }

}