jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
num_killer6 小时前
小白的Langchain学习
java·python·学习·langchain
wdfk_prog7 小时前
[Linux]学习笔记系列 -- hashtable
linux·笔记·学习
期待のcode7 小时前
Java虚拟机的运行模式
java·开发语言·jvm
2501_942326449 小时前
寒假高效记忆法助力学习飞跃
学习
计算机程序设计小李同学9 小时前
基于SSM框架的动画制作及分享网站设计
java·前端·后端·学习·ssm
深情的小陈同学10 小时前
工作学习笔记 —— 支持手机端的添加表单行操作
笔记·学习·ai编程
鱼跃鹰飞10 小时前
JMM 三大特性(原子性 / 可见性 / 有序性)面试精简版
java·jvm·面试
xiangshi_yan10 小时前
内核学习之路【4/100】-io
学习
am心11 小时前
学习笔记-小程序-导入商品浏览功能实现
笔记·学习
hkNaruto11 小时前
【AI】AI学习笔记:LangGraph入门 三大典型应用场景与代码示例及MCP、A2A与LangGraph核心对比
人工智能·笔记·学习