java 虚拟机 --内存区域分配

java 虚拟机 --内存区域分配

1:java运行时数据区域


java运行时会把内存划分为不同的数据区域

2:解释每一个区域

   1:程序计数器

    一个处理器同一时间只会执行一个线程,java虚拟机的多线程执行是通过切换时间分片的形式实现的,各个线程都有自己的计数器,记录字节码执行的行号,线程切换时能正确执行代码,这一块的内存是线程私有的

  2:java 虚拟机栈 

    每一个方法执行时会创建一个栈帧用于记录局部变量、动态链接、 方法出入口等信息,即方法的调用全过程,开始的虚拟机入栈到结束的出栈;这一块内存也是线程私有的;所以异常触发时需要回溯和调用栈的信息,开销比较大;

  3:java 堆

   java堆用于存储和分配实例对象,虚拟机启动时创建,所有线程共享一个堆内存

 4:本地方法栈

  记录Native方法的调用的服务

  5:方法区

  所有线程共享一个方法区,用于记录加载类的信息、常量、静态变量等数据  









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值