jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
烤麻辣烫38 分钟前
黑马程序员苍穹外卖(新手)DAY6
java·开发语言·学习·spring·intellij-idea
Xudde.2 小时前
Quick2靶机渗透
笔记·学习·安全·web安全·php
AA陈超3 小时前
Git常用命令大全及使用指南
笔记·git·学习
麦麦在写代码4 小时前
前端学习5
前端·学习
降临-max4 小时前
JavaSE---网络编程
java·开发语言·网络·笔记·学习
大白的编程日记.5 小时前
【计算网络学习笔记】MySql的多版本控制MVCC和Read View
网络·笔记·学习·mysql
u***42078 小时前
Golang 构建学习
开发语言·学习·golang
车载测试工程师9 小时前
CAPL学习-IP API函数-2
网络·学习·tcp/ip·capl·canoe
用户84913717547169 小时前
生产级故障排查实战:从制造 OOM 到 IDEA Profiler 深度破案
java·jvm
YJlio10 小时前
进程和诊断工具学习笔记(8.29):ListDLLs——一眼看清进程里加载了哪些 DLL,谁在偷偷注入
android·笔记·学习