目录

02JVM体系,类加载过程

目录

https://img.luhg.cn/2026/06/image-MsKP.png

JVM由三部分组成:运行时数据区类装载子系统字节码执行引擎

运行时数据区:也就是jvm的内存模型,分为堆,栈,方法区,本地方法栈,程序计数器5个部分。

:即线程栈,每个线程各有一线程栈,由一系列栈帧组成,一个方法就是一个栈帧,栈帧中存储有:局部变量,操作数栈,方法出口,动态连接

程序计数器 :每个线程都有自己的程序计数器程序计数器,用于记录线程执行的字节码行

本地方法栈 :为native方法栈空间,与栈类似,存储了native方法的局部变量,操作数栈等信息

:主要是存储对象

方法区 :在1.8之前的实现是持久区,在1.8及态变量和类元信息。使用的是程序之外的直接以后的实现是元空间,用于存储一些常量,静内存。

https://img.luhg.cn/2026/06/image-CCJb.png

类加载:加载 »验证»准备»解析»初始化

加载 :在硬盘上查找并通过I0读入字节码文件,使用到类时才会加载,例如调用类的main0方法,new对象等等。

验证 :验证字节码文件的正确性。

准备 :给静态变量分配内存,并且赋予默认值。引用类型的默认值为null数值为0,bollean为false。

解析 :将符号引用替换为直接引用,该阶段会把些静态方法(符号引用,比如main()方法)替换为指向数据所存内存的指针或句柄等,这是所调的静态链接过程(类加载期间完成)。动态链接是在程序运行期间完成的将符号引用替换为直接引用。

初始化 :对类的静态变量初始化为指定的值,执行静态代码块。