jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
菥菥爱嘻嘻1 分钟前
组件测试--React Testing Library的学习
前端·学习·react.js
白帽子黑客罗哥14 分钟前
零基础转行渗透测试 系统的学习流程(非常详细)
学习·网络安全·渗透测试·漏洞挖掘·护网行动
李洛克0734 分钟前
RDMA 编程完整学习路线图
学习·rdma·路线
你想知道什么?1 小时前
JNI简单学习(java调用C/C++)
java·c语言·学习
TL滕1 小时前
从0开始学算法——第十二天(KMP算法练习)
笔记·学习·算法
TG:@yunlaoda360 云老大2 小时前
腾讯云国际站代理商TACO Kit有什么优势呢?
学习·云计算·腾讯云
C++业余爱好者2 小时前
JVM优化入门指南:JVM垃圾收集器(GC)介绍
java·开发语言·jvm
半夏知半秋2 小时前
Elasticsearch Query DSL 指令整理
大数据·数据库·笔记·学习·elasticsearch·搜索引擎·全文检索
BFT白芙堂2 小时前
Franka机械臂“举一反三”:LLM Trainer如何通过单次演示实现自动化数据生成与长程任务学习
人工智能·学习·机器学习·自动化·模型训练·具身智能·franka
van久3 小时前
.Net Core 学习:Razor Pages中 HTML 表头字段的两种写法对比
学习·html·.netcore