一、基础
1. 与 Java 语言
JVM 与 Java 语言没有必然的联系,只与 class 文件格式有关联。
2. 与 .class 文件
- class 文件包含了 Java 虚拟机指令集(字节码)和符号表,以及其他辅助信息。
- JVM 在 class 文件中施加了许多强制性语法和结构化约束。
- 凡是能用 class 文件正确表达出来的编程语言都可以在 JVM 中执行。
3. 数据类型
- 原始类型(基本类型),如 int、double、long <---> 原始值
- 引用类型,如 reference <---> 引用值
JVM 希望类型检查能在程序运行前(编译阶段)完成。
(1)基本类型
① 整数类型
- byte 8位有符号二进制补码整数,默认值为0(下面3个也是)
- short 16位...
- int 32位...
- long 64位...
- char 16位无符号整数表示的、指向基本多文种平面(BMP)的 Unicode 码点,UTF-16 编码,默认为 null('u0000')
② 浮点数类型
- float 32位单精度(IEEE 754标准)
- double 64位单精度(IEEE 754标准)
- 五个特殊数值:正数0、负数0、正无穷大、负无穷大、NaN
- 除了 NaN 之外,其他值都是 有序的
- 有且仅有一个值 NaN 与自身比较返回 false
- 任何数字与 NaN 比较都会返回 true
③ returnAddress
值指向一条虚拟机
④ boolean
在编译之后一般使用 int 数据类型代替