数据类型
java虚拟机操作的数据类型可以分为两类:原始类型(primitive type也叫原生类型或基本类型)和引用类型(reference type),与之对应的也存在原始值和引用值。
原始类型和值
Java虚拟机所支持的原始数据类型包括数值类型、boolean类型和returnAddress类型。
- 数值类型
- 整数类型(默认值为0)
- byte类型:值为8位有符号二进制补码整数
- short类型:16位
- int类型:32位
- long类型:64位
- char类型:值为使用16位无符号整数表示的、指向基本多文种平面(Basic MultilingualPlane,BMP)的Unicode码点,以UTF-16编码,默认值为Unicode的null码点(’\u0000’)
- 浮点类型
- float类型:值为单精度浮点数集合中的元素,或者是单精度扩展指数集合中的元素,默认为正数0
- double类型:值为双精度浮点数集合中的元素,或者是双精度扩展指数集合中的元素,默认为正数0
- boolean类型:值为true和false,默认为false
- returnAddress类型:该类型是指向某个操作码(opcode)的指针,此操作码与虚拟机指令相对应。
在虚拟机支持的所有原始类型中只有returnAddress类型不能与Java语言的数据类型相对应。
浮点类型、取值集合及浮点值
所有Java虚拟机实现必须支持两种标准的浮点值集合:单精度浮点数集合和双精度浮点数集合。可以自由选择是否支持单精度扩展指数集合和双精度扩展指数集合。
任意一个非零的、可数的任意浮点值都可以表示为 s × m × 2 e − N + 1 s\times m\times {2}^{e-N+1} s×m×2e−N+1的形式,其中 s s s可以是+1或者-1, m m m是一个小于 2 N 2^N 2N的正整数, e e e是一个介于