jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
week_泽几秒前
第二个弱学习器的预测值由来解释说明
学习
dyyx1112 分钟前
Python GUI开发:Tkinter入门教程
jvm·数据库·python
Rabbit_QL4 分钟前
【LLM原理学习】N-gram 语言模型实战教学指南(从原理到代码)
人工智能·学习·语言模型
嵌入小生0075 分钟前
数据结构基础内容 + 顺序表 + 单链表的学习---嵌入式入门---Linux
linux·数据结构·学习·算法·小白·嵌入式软件
宇钶宇夕6 分钟前
CoDeSys入门实战一起学习(二十六):功能块(FBD)运算块与EN/ENO指令精讲及计数控制案例
运维·学习·自动化·软件工程
xhbaitxl8 分钟前
算法学习day30-贪心算法
学习·算法·贪心算法
2401_836121609 分钟前
更优雅的测试:Pytest框架入门
jvm·数据库·python
会算数的⑨9 分钟前
Spring AI Alibaba学习(一)—— RAG
java·人工智能·后端·学习·spring·saa
正经人_x12 分钟前
学习日记30:N-BEATS
学习
lxl130712 分钟前
学习C++(4)构造函数+析构函数+拷贝构造函数
开发语言·c++·学习