書名: 實戰Java虛擬機:JVM故障診斷與性能優化(第2版)作者名: 葛一鳴本章字數: 588字更新時間: 2024-01-08 16:10:51
1.3.3 數據類型的定義
Java語言規范中還定義了Java的數據類型。根據Java 1.7的規范,Java的數據類型分為原始數據類型和引用數據類型。原始數據類型又分為數字型和布爾型。數字型又有byte、short、int、long、char、float、double。注意,在這里char被定義為整數型,并且在規范中明確定義:byte、short、int、long分別是8位、16位、32位、64位有符號整數,而char為16位無符號整數,表示UTF-16的字符。布爾型只有兩種取值:true和false。而對于float和double,規范中規定,它們是滿足IEEE 754的32位浮點數和64位浮點數。
注意:在Java語言中,char占2字節,而不是C語言中的1字節。從這點上看,Java的國際化在語言底層就提供了強有力的支持。
此外,規范還定義了各類數字的取值范圍、初始值,以及能夠支持的各種操作。以整數為例,比較運算、數值運算、位運算、自增自減運算等都在規范中有描述。
除了基本數據類型,引用數據類型也是Java重要的組成部分,引用數據類型分為3種:類或接口、泛型類型和數組類型。
提醒:引用類型和原始類型在Java的處理中是截然不同的,尤其對于它們的“相等”操作。
【示例1-1】在Java語言規范中,有一個簡短的示例,說明了引用類型和原始類型的區別:


上述程序將輸出:

從上述輸出可以看出,對于原始數據類型int,i1和i2表示不同的變量,兩者毫無關系,但是對于v1和v2,它們都指向唯一一個由new關鍵字創建的Value對象。
由于本書并非講解Java語言,因此對于這部分內容點到即止,有興趣的讀者可以參考Java語言規范的第4章“Types,Values,and Variables”。