JVM类加载器子系统

内存结构简图

内存结构简图是JVM整体框架的一个展示,在记录JVM相关内容时都会用本图片进行一个系统的展示当前所讲章节在整个JVM中所在位置与相应功能。
JVM类加载器子系统_第1张图片

类加载器子系统

JVM类加载器子系统_第2张图片

从图中可以看到类加载器子系统分为了三个部分,分别是加载阶段,链接阶段和初始化阶段。整体的作用是将class类文件进行一个转码解析,方便电脑进行读取和执行。

类的加载阶段

JVM类加载器子系统_第3张图片
JVM类加载器子系统_第4张图片

链接阶段


实例变量并不会分配初始化,要区分好类变量和实例变量。
JVM类加载器子系统_第5张图片

上图中,a为类变量,所以执行准备阶段的第一步,准备阶段将a赋值为默认初始值,再在初始化阶段进行真正数值的赋值。

初始化

JVM类加载器子系统_第6张图片
构造器:
JVM类加载器子系统_第7张图片
3.顺序执行
JVM类加载器子系统_第8张图片
JVM类加载器子系统_第9张图片

  1. 先执行父类的clinit,再执行子类的clinit。
    JVM类加载器子系统_第10张图片

同时,初始化过程在多线程中,仅被初始化一次,不会多次初始化,与此同时在多线程中,一个程序调用了当前类,则会对程序进行加锁的操作,另外的程序无法访问。

你可能感兴趣的:(深入理解jvm,jvm,java)