1.概述
Java虛擬機的數據類型可分為兩大類:原始類型(Primitive Types,也稱為基本類型)和引用類型(Reference Types)。
Java虛擬機用不同的字節碼指令來操作不同的數據類型 。
2.原始類型
原始類型是最基本的元素,用於構成復雜的引用類型。與世間萬物一樣,都是由最基本的化學元素組合而成。
原始類型又分為三類:數值類型(Numberic Types)、布爾類型(Boolean Type)、ReturnAddress類型;數值類型又可以細化為整型(Integral Types)和浮點型(Floating-Point Types)。
整型
-
byte:8位 有符號 二進制補碼整數,取值范圍[-27,27-1],默認值為零;
-
short:16位 有符號 二進制補碼整數,取值范圍[-215,215-1],默認值為零;
-
int:32位 有符號 二進制補碼整數,取值范圍[-231,231-1],默認值為零;
-
long:64位 有符號 二進制補碼整數,取值范圍[-263,263-1],默認值為零;
-
char:16位 無符號 UTF-16編碼Unicode值,取值范圍[0,65535]默認值為null('\u0000');
浮點型
-
float:32位 單精度浮點數集合,默認值正數零;
-
double:64位 雙精度浮點數集合,默認值為正數零;
布爾型
-
boolean [1] :取值范圍[true,false],默認值為false;
returnAddress類型
-
returnAddress [^2]:表示一條字節碼指令的操作碼,在JVM支持的原始類型中只有returnAddress類型不能直接與Java語言的數據類型對應的。
引用類型
Java虛擬機有三種引用類型:類類型(Class Types)、數組類型(Array Types)、接口類型(Interface Types),分別由類實例、數組實例及實現了某個接口的類實例或數組實例動態創建。此外,還有一個特殊值null,不指向任何對象時,引用類型的值就是null,同時,null也是引用類型的默認值。
對於數組類型,還包含一個單一維度的組件類型(Component Type),組件類型可以是數組、原始類型、類類型或者接口類型。當組件類型是數組類型時,繼續重復取這個數組的組件類型,最后一層組件類型一定是非數組,這也是該數組類型的元素類型(Element Type)。這也是多維數組的實現形式。
-
在Java語言中涉及到boolean類型值的運算,在編譯后都是用Java虛擬機的int(32位)數據類型來代替;boolean的數組類型的訪問有修改共用byte(8位)類型數組的字節碼指令。 ↩