内存结构简图
内存结构简图是JVM整体框架的一个展示,在记录JVM相关内容时都会用本图片进行一个系统的展示当前所讲章节在整个JVM中所在位置与相应功能。
类加载器子系统
从图中可以看到类加载器子系统分为了三个部分,分别是加载阶段,链接阶段和初始化阶段。整体的作用是将class类文件进行一个转码解析,方便电脑进行读取和执行。
类的加载阶段
链接阶段
实例变量并不会分配初始化,要区分好类变量和实例变量。
上图中,a为类变量,所以执行准备阶段的第一步,准备阶段将a赋值为默认初始值,再在初始化阶段进行真正数值的赋值。
初始化
构造器:
3.顺序执行
- 先执行父类的clinit,再执行子类的clinit。
同时,初始化过程在多线程中,仅被初始化一次,不会多次初始化,与此同时在多线程中,一个程序调用了当前类,则会对程序进行加锁的操作,另外的程序无法访问。