jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
菜的不敢吱声5 小时前
swift学习第4天
服务器·学习·swift
想进部的张同学9 小时前
hilinux-3599---设备学习---以及部署yolo
学习·yolo·海思
HyperAI超神经9 小时前
【vLLM 学习】Rlhf
人工智能·深度学习·学习·机器学习·vllm
做cv的小昊11 小时前
【TJU】信息检索与分析课程笔记和练习(7)数据库检索—Ei
数据库·笔记·学习·全文检索
AI360labs_atyun11 小时前
上海打出“开源”国际牌!2025重磅新政
人工智能·科技·学习·ai·开源
Chris_121912 小时前
Halcon学习笔记-Day6:工业视觉高级技术应用与实战项目
笔记·学习·halcon
GHL28427109012 小时前
调用通义千问(qwen-plus)模型demo-学习
学习·ai·ai编程
阿达King哥12 小时前
在Windows11下编译openjdk 21
java·jvm
期待のcode13 小时前
Java虚拟机栈
java·开发语言·jvm
wdfk_prog14 小时前
[Linux]学习笔记系列 -- [fs]super
linux·笔记·学习