jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
Elias不吃糖7 小时前
Java Lambda 表达式
java·开发语言·学习
梨子串桃子_7 小时前
推荐系统学习笔记 | PyTorch学习笔记
pytorch·笔记·python·学习·算法
jjjxxxhhh1238 小时前
spdlog介绍使用
学习
曾浩轩9 小时前
图灵完备Turing Complete 3
学习
天天睡大觉9 小时前
Python学习11
网络·python·学习
laplace01239 小时前
# 第六章 agent框架开发实践 - 学习笔记
人工智能·笔记·学习·语言模型·agent
Knight_AL10 小时前
用 JOL 验证 synchronized 的锁升级过程(偏向锁 → 轻量级锁 → 重量级锁)
开发语言·jvm·c#
坚持不懈的大白10 小时前
Leetcode学习笔记
笔记·学习·leetcode
SWAGGY..10 小时前
数据结构学习篇(10)--- 二叉树基础oj练习
数据结构·学习
QiZhang | UESTC11 小时前
学习日记day58
学习