jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
焄塰3 小时前
Ansible 管理变量和事实
学习·centos·ansible
oe10194 小时前
读From GPT-2 to gpt-oss: Analyzing the Architectural Advances(续)
笔记·gpt·学习
Include everything7 小时前
Rust学习笔记(三)|所有权机制 Ownership
笔记·学习·rust
杜子不疼.8 小时前
《Python学习之文件操作:从入门到精通》
数据库·python·学习
★YUI★8 小时前
学习游戏制作记录(玩家掉落系统,删除物品功能和独特物品)8.17
java·学习·游戏·unity·c#
livemetee9 小时前
Flink2.0学习笔记:Flink服务器搭建与flink作业提交
大数据·笔记·学习·flink
长臂人猿9 小时前
JVM常用工具:jstat、jmap、jstack
linux·运维·jvm
INS_KF9 小时前
【C++知识杂记2】free和delete区别
c++·笔记·学习
柠檬味的薄荷心9 小时前
【C#补全计划】多线程
jvm
啊阿狸不会拉杆10 小时前
《算法导论》第 27 章 - 多线程算法
java·jvm·c++·算法·图论