本文旨在爲新手講解Java基本數據類型的用法及注意事項,對於久經沙場的前輩請忽略此文。
Java同C、C#、C++一樣是一種強類型的語言,即每個變量在使用之前,都必須爲變量聲明一個數據類型;在Java中共有8中基本數據類型,在本文稍後將一一作出講解。
說明:在Java中,當需要表示超出基本數據類型所能夠表示的精度的數值的時候,可以使用Java中已經封裝好的算術包;但需要注意的是,該算術包並非是一個數據類型,而是一個java對象。
本文目錄:
整型[byte | short | int | long]
浮點型[float | double]
字符型[char]
布爾型[boolean]
整型
整型用於表示沒有小數部分的數值,即由正整數、負整數和0組成;在Java中、有四種整型。
1) byte類型 1字節 -128~127
2) short類型 2字節 -32768~32767
3) int類型 4字節 -2147483648~2147483647
4) long類型 8字節 -9223372036854775808~9223372036854775807
由此可知,在java中數據類型的長度固定,因此可以保證在各個平臺之上運行結果一致[跨平臺]。
通常,int類型最常用;當表示的數值特別大的時候,就需要使用long類型;byte和short類型,在
特定場合(對數值結果明確的可預知)的時候使用(如:需要限制佔用存儲空間的大數組);當使
用long類型的時候,需要在數值後加L來表示該數值爲long類型。
2. 浮點型
浮點類型用於表示有小數部分的數值,在Java中,有兩種浮點型。
1) float類型 4字節 有效位數爲6-7位
2) double類型 8字節 有效位數爲15位
由以上可以看出,double數值精度爲float的兩倍,因此double也稱爲雙精度數值;通常、絕大部
分程序都應使用double類型,因爲、很多情況下float沒法滿足需求[例如:表示員工的年薪,此時
可能高層的薪水是float所無法表示的]
注意:在Java中,表示float數據類型需要在數值後加f以表示該數值爲單精度數值;否則Java默認
爲雙精度數值。在Java中所有的運算都遵循IEEE 754規範。
表示溢出和出錯的三個特殊數值:Double.POSITIVE_INFINIFY(正無窮)、NaN(不是數一個數
字)、Double.NEGATIVE_INFINIFY(負無窮) [正整數除以0的時候,結果就是無窮大,而計算
0/0或者負數的平方根的時候,結果就是NaN]
在程序中,當需要判斷一個數值是否是NaN的時候,不能使用if(x == Double.NaN)來判斷,因爲
在Java中,所有的非數值類型(NaN)都被認爲是不相同的;必須使用if(Double.isNaN(x))來判斷
注意:浮點類型不能被用於不允許出現舍入誤差的運算中(如銀行數值的計算),必須使用
BigDecimal類來進行計算。
3. 字符型
char類型表示單個字符;通常用於表示常量;在Java中,char類型使用UTF-16編碼描述一個編碼
單元。通常、強烈不建議在程序中使用char類型,除非需要對UTF-16編碼進行操作。
4. 布爾型
Boolean類型只有兩個值(true 和 false),用來判定邏輯條件。
注意:整型值和布爾值之間不能進行轉換。即在Java程序中不可能出現類似if(2){}、while(1){}這樣
的語句,這樣的語句在編譯的時候就會報錯(報錯具體內容爲:不兼容的數據類型)