jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
~kiss~4 分钟前
MoE的痛点:离散路由
学习
Amazing_Cacao8 分钟前
CFCA精品可可工艺师初级校准:暴力破解机器黑盒,实现物理参数与最终风味的精准对齐
笔记·学习
浮江雾1 小时前
Flutter第三节----Dart中的数据类型
android·开发语言·学习·flutter·入门·函数
风和先行1 小时前
Android 数据库相关学习总结
android·数据库·学习
chh5632 小时前
C++--list
开发语言·数据结构·c++·学习·算法·list
头茬韭菜2 小时前
3.9 成本预警 — 退出钩子、$5 阈值对话框与多通道成本通知
java·大数据·jvm·ai
ctrl_v助手2 小时前
HALCON 学习笔记1
笔记·数码相机·学习·算法·计算机视觉
Edward111111112 小时前
一AI名词
java·开发语言·数据库·学习
栈溢出了3 小时前
Redis repl_backlog 学习笔记
java·开发语言·redis·学习
并不喜欢吃鱼3 小时前
从零开始 C++----- 十五.一文吃透 C++ 异常:try-catch、栈展开、自定义异常、异常安全 noexcept 底层全剖析
java·开发语言·jvm