jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
2201_757830873 分钟前
JS的学习
前端·javascript·学习
xixixi7777728 分钟前
CRNN(CNN + RNN + CTC):OCR识别的经典之作
人工智能·rnn·学习·架构·cnn·ocr·图像识别
三杯五岳1 小时前
鸿蒙手机游戏开发学习 - 四顶棋(二打一)
学习·游戏源码·鸿蒙原生
dragoooon341 小时前
[C++——lesson16.STL 学习——【string的模拟实现】]
c++·学习
思成不止于此2 小时前
【MySQL 零基础入门】DQL 核心语法(一):学生表基础查询与聚合函数篇
数据库·笔记·学习·mysql
qq_386322692 小时前
华为-AI智算网络学习-4 运维与监控实例
学习
这个名字先用着2 小时前
NPN转PNP,PNP转NPN方法
科技·学习·制造
Lynnxiaowen2 小时前
今天我们学习kubernetes内容持久化存储
linux·运维·学习·容器·kubernetes
【上下求索】2 小时前
学习笔记094——Ubuntu 如何部署 frp 客户端服务?
笔记·学习·ubuntu
yueqc13 小时前
虚拟机(一):JVM
jvm