jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
鲨莎分不晴14 小时前
从 10 到 1000:大规模多智能体的可扩展性 (Mean Field & GNN)
人工智能·学习
roman_日积跬步-终至千里14 小时前
【人工智能导论】09-学习-注意力机制与Transformer:用注意力机制动态关注,用Transformer并行计算,用GPT理解生成语言
人工智能·学习·transformer
red_redemption14 小时前
藤井風《何なんw》
学习
江苏世纪龙科技14 小时前
汽车结构原理VR课:看得见、摸得着的机械世界
学习
im_AMBER14 小时前
React 20 useState管理组件状态 | 解构 | 将事件处理函数作为 props 传递 | 状态提升
前端·javascript·笔记·学习·react.js·前端框架
廋到被风吹走14 小时前
【Java】【JVM】OOM 原因、定位与解决方案
java·开发语言·jvm
崇山峻岭之间15 小时前
Matlab学习记录09
开发语言·学习·matlab
走在路上的菜鸟15 小时前
Android学Dart学习笔记第二十五节 类修饰符
android·笔记·学习·flutter
我想我不够好。15 小时前
低压实操 12.22
学习
@淡 定15 小时前
JVM性能监控与故障排查工具详解
jvm