java虚拟机规范学习笔记之数据类型

1.1 class文件格式

编译后被Java虚拟机所执行的代码使用了一种平台中立的二进制格式来表示,并且经常以文件的形式来存储,这种格式称为class文件格式。class文件格式中精确的定义了类与接口的表示形式。

class文件是被java虚拟机所执行的代码。

1.2 数据类型

原始数据类型:数值类型、boolean类型、returnAddress类型。

数值类型:整数类型、浮点类型。

整数类型:byte8位有符号二进制补码整数-128-2^7- 1272^7-1))、short16-32768-2^15- 327672^15 - 1))、int32-2^31 - 2^31-1)、long64-2^63 -2^63 - 1)、charchar类型是一个单一的 16 Unicode 字符,最小值是 \u0000(即为0),最大值是65535char 数据类型可以储存任何字符)。

浮点类型:floatdouble,默认值都为0

boolean类型:truefalse,默认值为false

returnAddress类型:是指向某个操作码(opcode)的指针,此操作码与Java虚拟机指令相应,在虚拟机支持的所有原始类型中,只有returnAddress类型是不能直接与Java语言的数据类型相对应的。

NaNNot-a-Number,非数字标识,用于标识某些无效的运算操作,如0除以0。除了NaN与自身比较是否等值时会得到false,任何数和NaN比较的返回值都是true

Java语言表达式所操作的boolean值,在编译之后都是用java虚拟机中的int数据类型来代替。true1表示,false0表示。

1.3 引用类型与值

引用类型:类类型(class type)、数组类型(array type)、接口类型(interface type)。

这些引用类型的值分别指向动态创建的类实例、数组实例和实现了某个接口的类实例或数组实例。

数组类型:最外面那一维元素的类型,叫做组件类型。一个数组的组件类型也可以是数组,所以可以不断的取值,直到遇到的不是组件类型,这时这个类型就叫做元素类型。

元素类型:必须是基本类型、类类型或者接口类型之一。

引用类型还有一个值:null,当一个引用不指向任何对象的时候,它的值就用null来表示。一个为null的引用类型,期初并不具备任何实际的运行期类型,但是它可以转型为任意的引用类型,引用类型的默认值是null

posted @ 2018-10-06 11:59  今天不打怪  阅读(238)  评论(0编辑  收藏  举报