天天看點

java中基本資料類型運算的 自動類型提升 與 強制轉換java的基本資料類型自動類型轉換與強制轉換

java的基本資料類型

java的基本資料類型:數值型(又分整數型和浮點型)、字元型、布爾型;

java中基本資料類型運算的 自動類型提升 與 強制轉換java的基本資料類型自動類型轉換與強制轉換
  1. 整型:byte(1位元組=8bit) \ short(2位元組) \ int(4位元組) \ long(8位元組)

    ① byte範圍:-128 ~ 127

    ② 聲明long型變量,必須以"l"或"L"結尾(由于小寫的L容易與1混淆,是以一般都大寫)

    ③ 通常,定義整型變量時,使用int型。

    ④整型的常量,預設類型是:int型

  2. 浮點型:float(4位元組) \ double(8位元組)

    ① 浮點型,表示帶小數點的數值

    ② float表示數值的範圍比long還大

    ③ 定義float類型變量時,變量要以"f"或"F"結尾

    ④ 通常,定義浮點型變量時,使用double型。

    ⑤ 浮點型的常量,預設類型為:double

  3. 字元型:char (1字元=2位元組)

    ① 定義char型變量,通常使用一對’’,内部隻能寫一個字元

    ② 表示方式:1.聲明一個字元 2.轉義字元 3.直接使用 Unicode 值來表示字元型常量

  4. 布爾型:boolean

    ① 隻能取兩個值之一:true 、 false

    ② 常常在條件判斷、循環結構中使用

自動類型轉換與強制轉換

自動類型轉換(隻涉及7種基本資料類型)

當容量小的資料類型的變量與容量大的資料類型的變量做運算時,結果自動提升為容量大的資料類型。

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

特别的:當byte、char、short三種類型的變量做運算時,結果為int型

說明:此時的容量大小指的是,表示數的範圍的大和小。比如:float容量要大于long的容量(如下面兩副圖)

java中基本資料類型運算的 自動類型提升 與 強制轉換java的基本資料類型自動類型轉換與強制轉換
java中基本資料類型運算的 自動類型提升 與 強制轉換java的基本資料類型自動類型轉換與強制轉換

強制轉換

在資料前加(int)可将資料強轉為int型,如:System.out.println((int)3.14);// 輸出結果為 3.

其他類型同理;

例子:

java中基本資料類型運算的 自動類型提升 與 強制轉換java的基本資料類型自動類型轉換與強制轉換

其中int num = sh + by; 改為 short num = sh + by;編譯器會報錯通過不了;

java中基本資料類型運算的 自動類型提升 與 強制轉換java的基本資料類型自動類型轉換與強制轉換

圖中變量 s 為 short 型,理論上java中常量5預設為 int 型,編譯器應會報錯,但java中其底層會自動檢測常量5的資料大小自動轉為 short 型(byte型也一樣),便于程式員開發。 變量 s 在參與運算時會先提升為 int 型,需在(s-2)前加一個強轉,否則編譯器會報錯,通過不了。

java中基本資料類型運算的 自動類型提升 與 強制轉換java的基本資料類型自動類型轉換與強制轉換

字元 a 的unicode碼為 97,注意符号 + 兩邊的資料類型,從左到右運算。