jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
看海天一色听风起雨落40 分钟前
Python学习之装饰器
开发语言·python·学习
speop2 小时前
llm的一点学习笔记
笔记·学习
非凡ghost2 小时前
FxSound:提升音频体验,让音乐更动听
前端·学习·音视频·生活·软件需求
ue星空2 小时前
月2期学习笔记
学习·游戏·ue5
萧邀人3 小时前
第二课、熟悉Cocos Creator 编辑器界面
学习
三毛20043 小时前
玳瑁的嵌入式日记D33-0908(SQL数据库)
jvm·数据库·sql
Mr_Xuhhh3 小时前
sqlite3的使用
jvm·oracle·sqlite
m0_571372823 小时前
嵌入式ARM架构学习2——汇编
arm开发·学习
AlexMercer10124 小时前
[前端]1.html基础
前端·笔记·学习·html
一川月白7095 小时前
51单片机---硬件学习(跑马灯、数码管、外部中断、按键、蜂鸣器)
单片机·学习·51单片机·外部中断·蜂鸣器·数码管·跑马灯