参考:《Java虚拟机精讲》
一、JVM虚拟机内部的内存分布的概况

其中方法区我在博文 java虚拟机类加载过程内存情况底层源码分析及ClassLoader讲解中详细讲解过,可参考那篇文章。它里面主要保存:运行时常量池、字段和方法数据、构造函数、普通方法的字节码等。
PC寄存器会存储正在执行的字节码指令地址,线程私有
Java栈也为线程私有,生命周期与线程的生命周期一致
二、内存分配
1、分配步骤
当我们创建一个对象时,会经历如下步骤:

根据上面的描述得到下面的图

所以对象是分配在堆的Eden区的,(部分分配在线程私有的TLAB区域(
JVM内存结构与垃圾回收机制详解

本文详细介绍了JVM内存的分布,包括方法区、PC寄存器和Java栈。重点讲述了对象的内存分配步骤,如在Eden区的分配、TLAB的使用以及逃逸分析。同时,讨论了内存回收的两种算法——根搜索算法和计数算法,并解释了新生代和老生代的垃圾回收策略,如复制算法和标记整理算法。
最低0.47元/天 解锁文章
1344

被折叠的 条评论
为什么被折叠?



