jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
小白郭莫搞科技1 小时前
鸿蒙跨端框架Flutter学习:CustomTween自定义Tween详解
学习·flutter·harmonyos
Hgfdsaqwr1 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
阳光九叶草LXGZXJ2 小时前
达梦数据库-学习-47-DmDrs控制台命令(LSN、启停、装载)
linux·运维·数据库·sql·学习
Hgfdsaqwr2 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
s1hiyu2 小时前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
2301_763472462 小时前
使用Seaborn绘制统计图形:更美更简单
jvm·数据库·python
A9better3 小时前
嵌入式开发学习日志53——互斥量
stm32·嵌入式硬件·学习
浒畔居3 小时前
机器学习模型部署:将模型转化为Web API
jvm·数据库·python
进阶小白猿4 小时前
Java技术八股学习Day30
java·开发语言·学习
近津薪荼4 小时前
优选算法——双指针6(单调性)
c++·学习·算法