jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
nwsuaf_huasir4 分钟前
深度学习2-pyTorch学习-张量基本操作
pytorch·深度学习·学习
d111111111d6 分钟前
江协科技-PID基本原理-(学习笔记)-主页有所有STM32外设的笔记基本都是万字起步。
笔记·科技·stm32·单片机·嵌入式硬件·学习
啦哈拉哈11 分钟前
【Python】知识点零碎学习3
开发语言·python·学习
LO嘉嘉VE16 分钟前
学习笔记二十九:贝叶斯决策论
人工智能·笔记·学习
2401_8345170723 分钟前
AD学习笔记-33 丝印位号的调整
笔记·学习
萤虫之光25 分钟前
常见进制介绍以及之间的转换(二)
学习
hssfscv27 分钟前
Mysql学习笔记——多表查询
笔记·学习·mysql
知识分享小能手32 分钟前
CentOS Stream 9入门学习教程,从入门到精通,CentOS Stream 9 中人工智能 —语法详解与实战案例(14)
人工智能·学习·centos
减_简2 小时前
JVM 之 线上诊断神器Arthas【常用命令?如何使用Arthas排查cpu飙高、类加载问题、死锁、慢接口等问题?】
jvm
透明的玻璃杯2 小时前
sqlite数据库连接池
jvm·数据库·sqlite