jvm学习总结

1.类加载运行全过程

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

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

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

加载:

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

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

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

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

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

相关推荐
d111111111d11 分钟前
MPU6050简介(学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习
2501_941111342 小时前
Python上下文管理器(with语句)的原理与实践
jvm·数据库·python
好奇龙猫6 小时前
日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(19):阶段练习
学习
松涛和鸣7 小时前
11.C 语言学习:递归、宏定义、预处理、汉诺塔、Fibonacci 等
linux·c语言·开发语言·学习·算法·排序算法
2501_941111409 小时前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
麦兜*10 小时前
Redis内存消耗异常飙升?深入排查与Big Key/Hot Key的根治方案
jvm·数据库·spring boot·redis·spring·缓存
Q***f63511 小时前
后端消息队列学习资源,RabbitMQ+Kafka
学习·kafka·rabbitmq
2501_9411118211 小时前
使用Python进行网络设备自动配置
jvm·数据库·python
循环过三天11 小时前
7.7、Python-常用内置函数
笔记·python·学习
烤麻辣烫12 小时前
23种设计模式(新手)-5里氏替换原则
java·学习·设计模式·intellij-idea·里氏替换原则