JVM 内存模型浅析

前言:

网络上有不少关于JVM内存模型的文章,讲解地很详细,但美中不足的是内容太过于详细以至于想了解JVM内存模型的读者只能望洋兴叹。这里简明扼要地讲解一下JVM内存模型以及各区的特点,以供想要大致了解其原理的读者管中窥豹。有不足之处还请读者见谅。

图解:

1:模型

图片来自于:https://www.nowcoder.com/discuss/151138?type=1
JVM内存模型是JVM在Runtime(运行时)所管理的内存区域,这也就是内存模型的由来。JVM内存模型根据Runtime的特点会进行分区划分。划分的部分就为如上图所示的形式。

2:各区作用

  • 方法区:存储已被虚拟机加载的类信息、常量、静态变量等数据
  • 堆:存放对象的实例
  • 虚拟机栈:存储基本类型数据、对象的引用
  • 本地方法栈:执行Native方法
  • 程序计数器:通过改变计数器的值来执行字节码的下一条指令

各区特点:

定义特点异常
方法区堆的一个逻辑部分线程共享OOM
堆内存线程共享、JVM中内存最大OOM
虚拟机栈栈内存线程私有、生命周期与线程相同OOM、SO
本地方法栈Native方法/OOM、SO
程序计数器当前线程所执行的字节码的行号指示器内存空间小、线程私有不存在
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值