jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
曹轲恒1 小时前
JVM之垃圾回收算法(GC)
jvm·算法
菜的不敢吱声2 小时前
swift学习第2,3天
python·学习·swift
l04090442222 小时前
想学习VLN相关的知识,并亲手搭建一套系统,该如何入手?
学习
山土成旧客3 小时前
【Python学习打卡-Day36】实战重构:用PyTorch神经网络升级信贷预测项目
python·学习·重构
麻雀无能为力3 小时前
VAE(变分自编码器 Variational Auto-Encoder)学习笔记
笔记·学习
挽天java3 小时前
X86汇编语言期末复习
学习
北岛寒沫3 小时前
北京大学国家发展研究院 经济学原理课程笔记(第十九课 长期经济增长)
经验分享·笔记·学习
北芝科技3 小时前
AI在教育中的五大应用场景,助力教学与学习全面智能化解决方案
人工智能·学习
草原上唱山歌4 小时前
推荐学习的C++书籍
开发语言·c++·学习