1. 程式人生 > >Java資料型別相關知識點-整型

Java資料型別相關知識點-整型

資料型別在程式語言的構成要素裡佔有相當重要的地位。Java的資料型別可分為基本資料型別與引用資料型別兩種,其中最基本的資料型別包括了最基本的byte、short、int、float、double、char、long、boolean等。而對於引用資料型別(類似於c/c++的指標),在操作時必須要進行記憶體的開闢。資料的型別劃分如下所示:

 

注:基本資料型別不牽扯到記憶體的開闢問題,而引用資料型別牽扯到記憶體的開闢。

如果從開發角度來講,以下的幾種基本型別最為常用:

①    int型(-2147483648-2147483647):只要是看見了整數的定義,其型別都是整型,預設值為0;

②    double型(-1.7E308-1.7E308):只要看見了小數的定義,其型別基本都是double型,預設值為0.0;

③    byte型(-128-127):資料傳輸與IO和編碼轉換的時候使用此型別,預設值為0。

④    boolean型(true或false):用於程式的邏輯操作,預設值為false;

⑤    long型(-9223372036854775808-9223372036854775807):表示日期時間或檔案長度的時候使用預設值為0。

小提示:Java中可以方便地去每一個數據型別的最大值和最小值:

     如int型和double型:

           最大值:Integer.MAX_VALUE;

Double.MAX_VALUE;

           最小值:Integer.MIN_VALUE;

                   Double.MIN_VALUE;

注:在int型中,①最大值+1=最小值;②最小值-1=最大值

  

執行結果:

 

以上出現的結果稱為資料的溢位,而解決溢位的主要方法是可以通過擴大資料範圍來完成,比int大的範圍是long,所以可以用如下兩種方式完成:數字或變數L、(long)數字或變數。

執行結果:

 

在Java中,各個基本資料型別的轉型操作流程為:

    ①範圍小和範圍大的兩種資料操作,範圍小的資料型別自動轉換為範圍大的資料型別,如:int+long=long;

    ②如果要把表示範圍大的資料變成範圍小的資料,則必須強制型別轉換,如:int型=(int)long型。

 當強制轉換的資料型別的資料值大於接收型別時,依然會存在資料溢位。如以下byte的驗證:

執行結果:

原因:因為int型變數x儲存的內容是200,這個數值已經超過了byte的資料範圍(-128~127),所以仍然發生了資料溢位。

注:對於byte的賦值操作Java有一個特殊支援。

如果現在使用者要定義byte型變數,那麼會存在兩種情況:

①定義的數值在byte範圍之內:

執行結果:

原因:按照之前講解的知識,只要是一個整數其型別就預設為int型,所以按照道理來說,這個時候應該進行強制型別轉換才可以將20轉換為byte型,可是Java中對於這種直接複製的操作會自動幫助使用者將int轉換為byte型,但這也只是針對byte資料而言。

②定義的變數數值不在byte範圍內:

執行結果錯誤提示:

 

 原因:由於此時200已經超過了byte的範圍,所以程式在編譯時就會明確地告訴使用者,int型資料無法直接轉換成byte型資料,使用者需要自己執行強制處理

 

執行結果: