jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
鸽鸽程序猿8 分钟前
【JavaSE】简单理解JVM
java·jvm
小毛驴8509 分钟前
JDK主流版本及推荐版本
jvm
幺零九零零18 分钟前
压测学习-JMeter
学习·jmeter
程途拾光1581 小时前
自监督学习在无标签数据中的潜力释放
人工智能·学习
软件技术NINI1 小时前
JavaScript性能优化实战指南
前端·css·学习·html
Blossom.1181 小时前
多模态大模型LoRA微调实战:从零构建企业级图文检索系统
人工智能·python·深度学习·学习·react.js·django·transformer
一 乐2 小时前
健身房预约|基于springboot + vue健身房预约小程序系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习·小程序
sbc-study2 小时前
comsol学习-碱性电解槽堆中的分流-电化学,水解电槽,碱性
学习·comsol·电解槽·碱性·非局部耦合算子
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [fs]kernfs
linux·笔记·学习
代码游侠2 小时前
学习笔记——IO多路复用技术
linux·运维·数据库·笔记·网络协议·学习