jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO7 小时前
Magentic-ui 学习
学习
_李小白7 小时前
【OPENGL ES 3.0 学习笔记】延伸阅读:VAO与VBO
笔记·学习·elasticsearch
微露清风8 小时前
系统性学习C++-第九讲-list类
c++·学习·list
海边夕阳20069 小时前
【每天一个AI小知识】:什么是零样本学习?
人工智能·经验分享·学习
Thexhy10 小时前
在 CentOS 7 的 Linux 系统中配置 NFS
linux·运维·学习·centos
CodeLongBear11 小时前
计算机网络学习笔记 | 传输层核心知识点总结(DAY03,匠心制作)
笔记·学习·计算机网络
晓北斗NorSnow11 小时前
机器学习核心算法与学习资源解析
学习·算法·机器学习
wdfk_prog12 小时前
[Linux]学习笔记系列 -- [kernel][time]tick
linux·笔记·学习
我命由我1234513 小时前
Photoshop - Photoshop 工具栏(22)单行选框工具
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop
User_芊芊君子14 小时前
【成长纪实】我的鸿蒙成长之路:从“小白”到独立开发,带你走进鸿蒙的世界
学习·华为·harmonyos·鸿蒙开发