Java個人學習筆記-資料型別及取值範圍

dapan發表於2021-09-09

一. Java基本資料型別
在JAVA中一共有八種基本資料型別,他們分別是
byte、short、int、long、float、double、char、boolean
取值範圍見下圖:
圖片描述

二. 不同資料型別之間相互賦值

  1. 範圍小的可以賦值給大的, 大的不能直接賦值給小的。

    a.小的賦值給大的可以直接賦值,不用強制型別轉換
    b. 大的賦值給小的必須強制型別轉換。
    c. 數值小數,系統預設為double型別
    d.小數賦值給int,不是四捨五入,是去掉小數部分取整數。

        //小數預設為double型別,賦值給float型別是大範圍賦值給小範圍,必須強制型別轉換
        float f1=(float)2.1;
        //小數預設為double型別,賦值給int是大的賦值給小的,必須強制型別轉換;
        //小數強制型別轉換為int,不是四捨五入,而是去掉小數部分取整數。
        int i1=(int)2.6;
        System.out.println("f1="+f1);
        System.out.println("i1="+i1);

    輸出結果:
    f1=2.1
    i1=2

  2. 當字面值為整數,未超出型別範圍時可以賦值給byte、short、char。
        byte b = 10;
        short s =10;
        char c =97;
        System.out.println("c="+b);
        System.out.println("s="+s);
        System.out.println("c的值是"+c);

輸出值:
c=10
s=10
c的值是a

3.字面值是整數且超出型別範圍時,賦值要進行強制型別轉換。

以給byte型別賦值為例:
a. 整數在系統中預設是int,但是整數在賦值給byte型變數時有時不需要輕質型別轉換,性情見下面的b、c兩點。
b. 如果數值沒有超出byte取值範圍(-128~127,即-2的7次方到2的7次方-1),可以直接賦值給byte型別變數,不用輕質型別轉換。 如: byte b=127;
c. 如果數值超出byte取值範圍,必須進行強制型別轉換。
如:byte b=(byte)128;

public class HelloChina {
    public static void main(String[] args){
        byte b1=127;//數面數值沒有超過[-128,127],可以直接賦值。
        byte b2=(byte)128;//128已超出了byte取值範圍,必須進行強制型別轉換。
//下面輸出b1和b2的值:
        System.out.println("b1="+b1);
        System.out.println("b2="+b2);
    }

}

輸出結果:
b1=127
b2=-128

4.運算中的型別轉換
看下面例子中的詳細解釋:

        //運算中的型別轉換
        byte b3=1;
        byte b4=2;
        byte sum;
        sum=(byte)(b3+b4);//注意這個算式不能寫成sum=b3+b4,如果寫成這樣編譯器會報錯,提示int型別不能轉換為byte型別。
        /*
         因為b3和b4是byte型別的變數,b3+b4=3,系統預設整數3為int型別,int型別賦值給byte型別sum就會出錯。
         所以要對b3+b4進行強制型別轉換(byte)(b3+b4),才可以合法的賦值給byte型別的sum。
         */
        System.out.println("sum="+sum);
        int sum2=(int)(3+4.7);//小數與整數相加預設為double,賦值給int型別需要強制型別轉換
        System.out.println("sum2="+sum2);

輸出:
sum=3
sum2=7

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/758/viewspace-2799313/,如需轉載,請註明出處,否則將追究法律責任。

相關文章