JVM内存模型1.8

先来看一下模型图,有标明作者!

JVM不可怕,先来一一解剖

属于线程私有的:

程序计数器:1.当前线程所执行的字节码行号指示器(逻辑) 2.改变计数器的值来选取下一条需要执行的字节码指令;是不是觉得很复杂?其实就是通过程序计数器来保存线程上下文切换的时候所执行的字节码行号, 确保线程上下文切换的时候有保存所执行的第几行字节码的记录,切换回来还能在上次运行的行号继续运行下去;

虚拟机栈Stack:主要保存java方法执行的内存模型,包含了多个栈帧,其中有1.局部变量表:包含方法执行过程中的所有变量, 2.操作数栈:入栈、出栈、复制、交换、产生消费变量

本地方法栈:与虚拟机栈相似,主要用于标注了native的方法

属于线程共享的:

MetaSpace:内存空间直接使用的是等级内存

堆Heap:1.对象实例的分配区域 2.GC管理的主要区域

调节JVM的堆大小参数

-Xss:规定了每个线程虚拟机栈(堆栈)的大小

-Xms:堆的初始值

-Xmx:堆能达到的最大值

JAVA内存模型中堆和栈的区别

1.管理方式:栈自动释放,堆需要GC

2.空间大小:栈比堆小

3.碎片相关:栈产生的碎片远小于堆

4.分配方式:栈支持静态和动态分配,而堆仅支持动态分配

5.效率:栈的效率比堆高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值