JAVA_資料型別介紹與基本資料型別之間的運算規則

BeautifulGirl230發表於2020-12-09

基本資料型別

  • 整型: byte、short、int、long

    java 的整型常量預設為int型,在java程式中變數通常宣告為int型,除非不足以表示較大的數才用long,而在宣告long型常量必須在後面加上lL

    型別 佔用儲存空間 表數範圍
    byte 1位元組=8bit -128 ~ 127
    short 2位元組 -215 ~ 215 - 1
    int 4位元組 -231 ~ 231 -1 (約21億)
    long 8位元組 -263 ~ 263 - 1
  • 浮點型:float、double

    ​ 浮點型表示小數點的數值,java浮點型常量預設型別為double

    • float表示數值的範圍比long還大,在定義float變數時,變數要以fF結尾(尾數可以精確到7位數字。很多情況下,精度很難滿足需求)
    • double精度是float的兩倍。(通常採用此型別定義)
    型別 佔用儲存空間 表數範圍
    單精度float 4位元組 -3.403E38 ~ 3.403E38
    雙精度double 8位元組 -1.798E308 ~ 1.798E308
  • 字元型:char

    在宣告char型變數時,通常使用一對' ',內部只能寫一個字元。

    實列:

    • char = '世'
    • char = '世界' ×
    型別 佔用儲存空間 表數範圍
    char 1字元 = 2位元組 ''
  • 布林型:boolean

    布林型只有兩個值:truefalse,一般用在判斷、迴圈結構中使用。

引用資料型別

  • 特殊:字串(String屬於引用資料型別) String可以和所用資料型別進行計算,結果都為String型別。

  • 類(class

  • 介面(interface

  • 陣列(array

基本資料型別之間的運算規則

自動型別提升

bytecharshort) → intlongfloatdouble

特別:當bytecharshort三種型別的變數做運算時,結果為int型別。

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

說明: 此時的容量大小指的是表示數的範圍的大和小。

比如:float容量要大於long的容量。

強制型別轉換

強制型別轉換就相當與自動型別提升運算的逆運算

  • 強制資料轉換需要使用強轉符:()

  • 注意:強制型別轉換,可能導致精度損失

    public class VariableTest2 {
        public static void main(String[] args){
           /*精度損失舉例1*/
            double d1 = 12.3;
            int i1 = (int)d1;
            System.out.println(i1); // 12
    
            /*沒有損失精度*/
            long d2 = 123L;
            short i2 = (short)d2;
            System.out.println(i2); // 123
    
            /*精度損失舉例2*/
            int d3 = 128;
            byte i3 = (byte)d3;
            System.out.println(i3); // -128
        }
    }
    

相關文章