jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
321.。2 分钟前
从 0 到 1 实现 Linux 下的线程安全阻塞队列:基于 RAII 与条件变量
linux·开发语言·c++·学习·中间件
啵啵鱼爱吃小猫咪9 分钟前
机器人标准DH(SDH)与改进DH(MDH)
开发语言·人工智能·python·学习·算法·机器人
忧郁的Mr.Li13 分钟前
JVM-类加载子系统、运行时数据区 详解
java·jvm
时光慢煮19 分钟前
从进度可视化出发:基于 Flutter × OpenHarmony 的驾照学习助手实践
学习·flutter·华为·开源·openharmony
week_泽29 分钟前
GBDT 算法中构建第一个弱学习器(CART 回归树)-计算示例
学习·算法·回归·gbdt
QZ_orz_freedom31 分钟前
后端学习笔记-ApaChe POI
笔记·学习
问道飞鱼33 分钟前
【大模型学习】CRISP 提问框架
学习·提示词·crisp提问框架
啵啵鱼爱吃小猫咪38 分钟前
机器人几何雅可比与解析雅可比
人工智能·学习·算法·机器学习·matlab·机器人
蒸蒸yyyyzwd40 分钟前
go语言学习
开发语言·学习·golang
2301_811232981 小时前
机器学习与人工智能
jvm·数据库·python