JVM内存模型

jvm架构图示(图是借鉴网上的)

JVM主要分为三个子系统:

  1. 类加载器

  2. 运行时数据区

  3. 执行引擎

1、类加载器

类加载器的运行流程:

1)loading:

  • 获取字节流
  • 将可存储的字节流转换为运行时数据
  • 在内存堆中生成class对象

2)linking:

  • veryfy:将字节流进行格式元数据字节码验证
  • prepare:为静态变量分配内存空间
  • resolve:将引用转为直接引用

3)initialize:

调用类的构造器方法,如果调用时发现父类构造器没有执行会先触发父类构造器。

2、运行时数据区

这里从图可以看出共享的区域有两个:方法区和堆区;栈区和本地方法栈都是线程私有且安全的。

1)栈:主要是临时变量;

2)堆:存储Java 对象以及实例变量

3)方法区:存储的主要是所有运行时类的数据,以及常量池。运行时数据(静态方法、静态变量,常量,成员方法)

4)寄存器:方法指令(类似计算机组成原理里面的寄存器)

5)本地方法栈:这里每个线程都会生成一个本地方法栈

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值