jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
GeminiJM1 分钟前
LangGraph 源码学习笔记
linux·笔记·学习·langchain
babe小鑫4 分钟前
大专应用统计学专业学习数据分析的实用性分析
学习·数据挖掘·数据分析
简佐义的博客5 分钟前
15万单细胞、19种实体瘤:系统学习血管内皮细胞泛癌的单细胞与空间转录组联合分析思路
人工智能·学习
小龙7 分钟前
【学习笔记】视频抽帧方法大全
笔记·学习·计算机视觉·视频·视频抽帧
魔力军14 分钟前
Rust学习Day5:结构体介绍和使用
开发语言·学习·rust
.小墨迹39 分钟前
局部规划中的TEB,DWA,EGOplanner等算法在自动驾驶中应用?
开发语言·c++·人工智能·学习·算法·机器学习·自动驾驶
求真求知的糖葫芦43 分钟前
巴伦学习(三.一)一种可以实现阻抗变换的平面Marchand巴伦的公式推导学习笔记(下)(自用)
笔记·学习·平面
wangxinwei20001 小时前
android开机动画深入开发学习
学习
鸡蛋豆腐仙子1 小时前
redis及实现分布式锁的原理
java·redis·分布式·学习·缓存
金色光环1 小时前
stm32 usb的学习与使用笔记
笔记·stm32·学习