jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
X_StarX4 分钟前
【Unity笔记02】订阅事件-自动开门
笔记·学习·unity·游戏引擎·游戏开发·大学生
MingYue_SSS12 分钟前
开关电源抄板学习
经验分享·笔记·嵌入式硬件·学习
weixin_4373982142 分钟前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
慕y2741 小时前
Java学习第十六部分——JUnit框架
java·开发语言·学习
peace..2 小时前
温湿度变送器与电脑进行485通讯连接并显示在触摸屏中(mcgs)
经验分享·学习·其他
掘金-我是哪吒2 小时前
分布式微服务系统架构第158集:JavaPlus技术文档平台日更-JVM基础知识
jvm·分布式·微服务·架构·系统架构
软件黑马王子3 小时前
C#系统学习第八章——字符串
开发语言·学习·c#
abigalexy3 小时前
深入JVM底层-内存分配算法
jvm
strongwyy5 小时前
蓝牙墨水屏上位机学习(2)
学习
九皇叔叔5 小时前
(3)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别
学习