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型資料,使用者需要自己執行強制處理
執行結果: