007.JVM内存模型
分类:
文章
•
2025-06-09 11:26:34
1. JVM 内存划分

- 程序计数器:
当前线程所执行的字节码的行号指示器
- 本地方法栈:
为虚拟机使用的 native 方法服务
- Java 虚拟机栈:
描述 java 方法执行的内存模型,
每个方法被执行的时候都会同时创建一个栈帧,
用于存储局部变量表, 操作栈, 动态链接, 方法出口等信息.
当方法调用完毕, 该方法的栈帧会被销毁.
- Java 堆:
被所有线程共享的一块内存区域, 在虚拟机启动时创建.
所有的对象实例以及数组都要在堆上分配.
- 方法区:
线程共享的内存区域, 储存已被虚拟机加载的类信息, 常量, 静态变量,
即时编译器编译后的代码数据等,
这个区域的内存回收目标主要是针对常量池的回收和对类型的卸载.
2. 垃圾回收器 GarbageCollection
- Java 的自动垃圾回收机制
- 作用是不需要去手动的控制内存的释放, 当 JVM 发现内存资源紧张的时候,
就会自动地去清理无用对象, 即没有被引用到的对象, 所占用的内存空间.
自动回收的是堆空间的内存, 而栈空间内存会随着方法的执行结束,
自动释放该方法的栈帧内存.