Java虚拟机结构
1:Class文件格式
编译后被Java虚拟机所职行的代码使用了一种平台中立(与平台无关的)的二进制格式表示,经常(但不是绝对)以文件格式存储,这种格式就是Class文件格式;
2:数据类型
可用于变量赋值,参数传递,方法返回和运算操作;
原始类型(primitive type): 存在原始值与之对应;
引用类型(reference type: 存在引用值对应;
编译器应该在编译期间尽可能完成类型检查,使得虚拟机在运行期间无需进行这些操作;
注意:虚拟机的字节码指令本身就可以确定指令操作是什么,所以原始类型不需要通过刻意的特殊标记或别的额外识别手段来在运行期确定他们实际的数据类型;
2.1:原始类型与值
Java虚拟机支持的原始数据类型包括:数值类型,boolean类型,returnAddress类型(实际上处于名存实亡的状态)。
2.1.1:整数类型与值
整数类型包括:
byte: 8字节有符号二进制补码整数,默认为0,范围为-2^7~2^7-1;
short: 16字节有符号二进制补码整数,默认为0,范围为-2^15~2^15-1;
int: 32字节有符号二进制补码整数,默认为0,范围为-2^31~2^31-1;
long:64字节有符号二进制补码整数,默认为0,范围为-2^63~2^63-1;
char: 16字节无符号整数;
2.1.2:浮点类型与值
浮点类型:
float:单精度浮点数集合中的元素,或者是单精度扩展指数集合中的元素,默认值为+0;
double:双精度浮点数集合中的元素,或者是双精度扩展指数集合中的元素,默认值为+0;
boolean:值为true和false,默认为false;
未完...