第八章 第二节 方法调用

方法调用不等同于方法中的代码被执行,方法调用阶段唯一的任务就是确定被调用方法的版本。 1、解析 方法调用的目标方法在Class文件里面是一个常量池中的符号引用,在类加载的解析阶段,会将部分


第八章 第一节 运行时栈帧结构

Java虚拟机以方法作为最基本的执行单元,“栈帧”(Stack Frame)则是用于支持虚拟机进行方法调用和方法执行背后的数据结构,也是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。 -- 栈帧存储了方法的局部变量表、操作数栈、动态链接、方法返回信息和一些额外


第七章 第三节 类加载器

Java虚拟机设计团队有意把类加载阶段中的“通过一个类的全限定名;来获取描述改类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader) 3.1 类与类加载器 对于任意一个类,都必须由加载它的类加


第七章 第二节 类加载的过程

1、加载 Java需要完成这三个事情: 通过一个类的全限定名获取定义此类的二进制流 将静态数据结构转化为方法区的运行时数据结构 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口 2、验证


第七章 第一节 类被加载的时机

1、整体概述 加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的,类型的加载过程必须按照这种顺序按部就班地开始,而解析阶段