jvm学习总结

1.类加载运行全过程

当我们使用java命令运行某个main函数启动程序时,首先需要通过类加载器把主类加载到JVM.

主要用到的类为loadClass,loadClass的类加载过程有如下过程

加载--》验证--》准备-》》解析》》初始化》》使用》》卸载

加载:

在硬盘上查找并通过io读写字节码文件,使用类时才加载,例如调用来的main方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。

验证:验证字节码的准备性

准备:给累的静态变量分配内存

解析:将符号引用替换为直接引用,该阶段会把一些静态方法换为指向数据所存内存的指针或句柄等

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

相关推荐
找了一圈尾巴1 小时前
LLM-as-a-Judge-论文学习(中)
学习·模型评估
Ttang231 小时前
【AI学习1】了解开源大模型
人工智能·学习·开源
望忆1 小时前
关于《Contrastive Learning for Cold-Start Recommendation》的学习
学习
知识分享小能手1 小时前
CentOS Stream 9入门学习教程,从入门到精通, Linux文本编辑器 —— 语法详解与实战案例(5)
linux·学习·centos
van久2 小时前
.Net Core 学习:Razor Pages -- 依赖注入
学习·.netcore
YangYang9YangYan2 小时前
2026年中专计算机专业证书报考指南:高性价比认证与职业路径规划
大数据·人工智能·学习·计算机视觉
严文文-Chris2 小时前
【半监督学习常见算法】
学习·算法·机器学习
深蓝海拓3 小时前
YOLO v11的学习记录(八) 使用自定义数据从头训练一个目标检测的模型
学习·yolo
篮球只打两年半3 小时前
普罗米修斯监控系统学习实践报告
学习
Rock_yzh3 小时前
LeetCode算法刷题——54. 螺旋矩阵
数据结构·c++·学习·算法·leetcode·职场和发展·矩阵