jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
hakuii7 分钟前
3dgs学习有感
学习·3d
李泽辉_7 分钟前
深度学习算法学习(六):深度学习-处理文本:神经网络处理文本、Embedding层
深度学习·学习·算法
QiZhang | UESTC10 分钟前
学习日记day54
学习
风送雨12 分钟前
FastAPI 学习教程 · 第1部分
学习·fastapi
星火开发设计21 分钟前
C++ multimap 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识
好奇龙猫23 分钟前
【大学院-筆記試験練習:线性代数和数据结构(6)】
学习
●VON25 分钟前
使用 OpenAgents 搭建基于智谱 GLM 的本地智能体(Agent)
学习·安全·制造·智能体·von
丝斯201125 分钟前
AI学习笔记整理(45)——大模型数据读取技术与模型部署
人工智能·笔记·学习
mpHH29 分钟前
postgresql 执行器中readme的翻译
数据库·学习·postgresql
风送雨37 分钟前
FastAPI 学习教程 · 第2部分
学习·fastapi