类加载机制和JVM内存模型

类加载机制和JVM内存模型

一.什么是

class文件加载到jvm中运行

二.过程

1.装载:找到在哪里

(1)通过类的全限定路径名找到类的二进制流 类装载器:ClassLoader

 

保证类的唯一性,先顶层加载,最后轮到我才加载

(2)将字节流所代表的的静态存储结构转化为方法区的运行时数据结构

(3)代表当前类的java.lang.Class对象,放到jvm堆

2.链接

验证:文件格式,元数据,字节码,符号引用的验证

准备:为类的静态变量分配内存,初始化为默认值,方法区分配

解析:将类中的符号引用替换成直接引用

3.初始化

为类的静态变量,静态代码执行真正的初始化操作,比如a=9,a才能真正赋值为9

三.JVM

堆:存储对象,线程共享,生命周期和虚拟机一样 OOM

方法区:存储类信息,常量,静态变量,即时编辑器编译之后的代码,被所有线程共享 OOM

--运行期常量池:用于存放编译期生成的各种字面量和符号引用

虚拟机栈:线程是为了执行方法,每个线程执行的方法就是一个一个栈帧,线程就是一个jvm栈,栈帧就是方法的执行

程序计数器:每个线程里记录当前方法执行的位置

native栈:调用C方法

 

四.栈中的方法调用过程

1.a调用b,b调用c

 

2.栈帧的执行过程

javap反解字节码指令

 

 

 

五.jvm模型

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值