与Java类似,Java虚拟机中的数据类型也分为基本数据类型和引用类型,相应的,也存在原始类型和引用类型
原始类型与值
整型
- byte:8位有符号二进制补码,默认为0
- short:16位有符号二进制补码,默认为0
- int:32位有符号二进制补码,默认为0
- long:64位有符号二进制补码,默认位0
- char:16位无符号整数,指向BMP的Unicode码点,以UTF-16编码,默认值是Unicode的null码点('\u0000')
浮点类型
- float:单精度浮点数,默认为正数0
- double:双精度浮点,默认为正数0
boolean
值为true或false,默认为false
在Java虚拟机中没有提供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译后都会使用Java虚拟机中的int数据类型来代替.
Java虚拟机支持boolean类型的数组,boolean类型数组的访问和修改共用byte类型数组的baload和bastore指令
returnAddress
指向某个操作码(opcode)的指针,此操作码与Java虚拟机指令相对应.在Java虚拟机支持的基本数据类型中,只有returnAddress是无法与Java语言的数据类型对应
引用类型与值
Java虚拟机中有三种引用类型:
- 类类型
- 引用类型
- 接口类型
这些引用类型分别指向某个动态创建的类实例,数组实例和实现了某个接口的类实例或者数组实例.
int[][][]这种类型,我们可以把int[][]理解成为一个组件类型,而int[]同样也可以成为int[][]的组件类型,这样不断找下去,知道找到一个不是数组的组件类型(int),我们就把int称为元素类型