jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
wdfk_prog13 分钟前
[Linux]学习笔记系列 -- [fs]file
linux·笔记·学习
我居然是兔子19 分钟前
Java虚拟机(JVM)内存模型与垃圾回收全解析
java·开发语言·jvm
其美杰布-富贵-李22 分钟前
Java (Spring Boot) 反射完整学习笔记
java·spring boot·学习
andwhataboutit?26 分钟前
LLAMAINDEX框架
学习
小许好楠33 分钟前
java开发工程师-学习方式
java·开发语言·学习
小帅学编程44 分钟前
JDBC学习
数据库·学习·oracle
@淡 定1 小时前
JVM 问题排查手段
jvm
其美杰布-富贵-李1 小时前
Python 反射完整学习笔记
笔记·python·学习·反射
charlie1145141911 小时前
快速在WSL上开发一般的C++上位机程序
开发语言·c++·笔记·学习·环境配置·工程
我命由我123451 小时前
CSS 锚点定位 - 锚点定位引入(anchor-name、position-anchor)
开发语言·前端·javascript·css·学习·html·学习方法