JAVA_數據類型介紹與基本數據類型之間的運算規則

基本數據類型

  • 整型: 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
        }
    }
    
Tags: