基本資料型別轉化

柒_Seven發表於2020-12-17

基本型別轉換

一、資料型別

資料型別包括基本資料型別和引用資料型別。

1、基本資料型別有四大類八小種

  • 整型:byte(1位元組)、short(2位元組)、int(4位元組)、long(8位元組)
  • 浮點型:float(4位元組)、double(8位元組)
  • 字元型:char(2位元組)
  • 布林型:boolean(1 bit)

2、引用型別

記住,除了基本資料型別,其他都為引用型別。

舉幾個栗子吧,類、介面、陣列......

二、基本資料型別轉換

1、在型別轉換之前,我們首先要清楚基本資料型別的級別(從高到低):

​ double > float > long > int > byte、short、char

2、轉換分為自動轉換和強制轉換

  • 自動轉換

    當一種基本資料型別轉換為比它高階的基本資料型別時,計算機可以自動轉換

  • 強制轉換

    當一種基本資料型別轉換為比它低階的基本資料型別時,需要我們手動進行強制轉換

3、強制轉換要點

  • 轉換格式

    在高階型別前加小括號,括號內為要轉化的低階型別。

    舉栗子說明:

    //將double型轉化為int型
    int a = 0; 
    double b = 3.11;
    a = (int) b;
    
  • 應用:多種資料型別參與表示式計算

    注:在四大類八小種基本資料型別中,整型、字元型、浮點型都可以參與運算,但唯獨布林型別不可參與運算。

    運算過程:

    計算機在運算過程中,會找到級別最高的型別,然後將其餘型別全部轉化為當前表示式級別最高的型別,再進行運算。

  • 特殊情形一

    對於byte、short、char這三類,只要數值在它們可以表示的範圍內,賦值時無需進行轉化。

    舉栗子:


    分析: 12在byte可表示範圍內,而270不在,又因為整數會預設為int型,int型級別高於byte,因此不強制轉化會出錯!
    ——————————————————————————————————————————————————————————————————————————————————————————————————————————
    接著上面的栗子,看看通過強制轉換的結果是什麼樣子


    ——————————————————————————————————————————————————————————————————————————————————————————————————————————
    有木有發現270變為14了!
    接下來,我帶你進行記憶體分析,告訴你why!

  • 特殊情形二:double強制轉化為int時,不是四捨五入,而是掉尾巴方法(即直接去掉小數部分)!

    舉栗子:

相關文章