第八章 第一节 运行时栈帧结构
Java虚拟机以方法作为最基本的执行单元,“栈帧”(Stack Frame)则是用于支持虚拟机进行方法调用和方法执行背后的数据结构,也是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。 -- 栈帧存储了方法的局部变量表、操作数栈、动态链接、方法返回信息和一些额外
Java虚拟机以方法作为最基本的执行单元,“栈帧”(Stack Frame)则是用于支持虚拟机进行方法调用和方法执行背后的数据结构,也是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。 -- 栈帧存储了方法的局部变量表、操作数栈、动态链接、方法返回信息和一些额外
Java虚拟机设计团队有意把类加载阶段中的“通过一个类的全限定名;来获取描述改类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader) 3.1 类与类加载器 对于任意一个类,都必须由加载它的类加
1、加载 Java需要完成这三个事情: 通过一个类的全限定名获取定义此类的二进制流 将静态数据结构转化为方法区的运行时数据结构 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口 2、验证
1、整体概述 加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的,类型的加载过程必须按照这种顺序按部就班地开始,而解析阶段
1、 Java虚拟机指令集所支持的数据类型 大部分指令都没有支持byte、char和short,设置没有任何指令支持boolean,是因为编译器会在编译器或运行期 将其转为对应的int类型数据。 2、字节码指令分类 加载和存储指令:将数据在栈帧中的局部变量表和操作数栈之间传输 将一个局部变量加载到操