Jvm
2024-12-12 16:04:04 0 举报
jvm运行,以及解析
作者其他创作
大纲/内容
即时编译器编译后的代码
异常处理
类结构信息
class文件
本地库接口
清理和返回
静态变量
局部变量表
探测器
内存区域
本地方法库
中间带生成器
Jvm线程1. 类加载器:2. 内存区域分配:元空间、堆、虚拟机栈、本地方法栈3. 方法执行与内存管理: 方法:虚拟机栈、本地方法栈 内存:堆,新生区、老年区、元空间4. 请求流程:类加载 -> 加载本地库 -> 方法调用 -> 参数传递和返回结果 -> 对象分配 -> 垃圾回收 -> 异常处理;
代码优化器
堆Heap
加载本地库
目标代码生成器
当前栈帧
轻GCMinor GC
伊甸园(Eden Space)
元空间(永久存储区,方法区)
方法出口
运行时常量池
jvm运行顺序1. 类加载器将 .class文件加载到方法区2. 初始化静态变量和静态代码块3. 当以现场开始执行某个方法时,会在虚拟机中创建一个新的栈帧4. 栈帧中的局部变量表初始化为方法的参数和局部变量5. 按照字节码逐步执行方法体内的逻辑6. 如果遇到对象创建指令(如 new),则在堆中分配内存并初始化对象7. 对于本地方法调用,切换到本地方法栈进行处理8. 定期检查堆中的对象是否可以回收9. 使用标记-清楚、复制、整理等算法释放不再使用的对象所占用的内存
幸存区 0 区
类的加载信息
执行引擎
类加载器
垃圾回收器
其他元数据
字段和方法数据
重GC Full GC
调用本地方法
本地方法栈Native Method Stack
动态链接
老年代(old generation)
栈帧N
JIT编译器
参数传递和返回结果
虚拟机栈VM Stack
程序计数器Program Counter Register
幸存区 1 区
操作数栈
interpreter (解释器)
新生区
0 条评论
下一页