数据类型
本文类容源自Java SE14 JDK规范,因为书本内容部分知识已过时。
Java 虚拟机对两种类型进行操作:原始类型和引用类型。
原始类型
Java 虚拟机支持的原始数据类型是数值类型、布尔类型和 returnAddress 类型。
数值类型由整型和浮点型组成。
returnAddress 类型由 Java 虚拟机的 jsr、ret 和 jsr_w 指令使用。
returnAddress 类型的值是指向 Java 虚拟机指令操作码的指针。
returnAddress 类型不对应任何 Java 编程语言类型,并且不能被正在运行的程序修改。
尽管 Java 虚拟机定义了布尔类型,但它只提供了非常有限的支持。没有专门用于布尔值操作的 Java 虚拟机指令。相反,Java 编程语言中对布尔值进行操作的表达式被编译为使用 Java 虚拟机 int 数据类型的值。 Java 虚拟机确实直接支持布尔数组。它的 newarray 指令 (§newarray) 可以创建布尔数组。使用字节数组指令 baload 和 bastore(§baload,§bastore)访问和修改布尔类型的数组。
Java 虚拟机使用 1 表示 true 和 0 表示 false 对布尔数组组件进行编码。在 Java 编程语言布尔值由编译器映射到 Java 虚拟机类型 int 的值的情况下,编译器必须使用相同的编码。
引用类型
引用类型分为三种:类类型、数组类型和接口类型。
各类型概览图如下: