程序运行时,常见存储区分类及作用

|-----------|----------------------------------------------------------------------------------------------------------------|
| | 作用 |
| 栈区(stack) | * 存放函数的形参和局部变量(auto 类型),由编译器自动分配和释放。 * 生命周期与函数调用相关,函数结束时自动回收。 * 栈区的大小有限,通常较小。 * 例如,函数参数和局部变量。 |
| 堆区(heap) | * 由程序员手动申请和释放,需要注意避免内存泄漏。 * 存放动态分配的内存,如使用 mallocnew。 * 生命周期由程序员控制,程序结束时可能由操作系统回收。 * 例如,动态分配的对象、数组等。 |
| 全局/静态存储区 | * 存放全局变量和静态变量(包括静态全局变量和静态局部变量)。 * 初始化的全局变量和静态局部变量放在一块,未初始化的放在另一块。 * 生命周期从定义开始到程序结束。 * 例如,全局变量、静态变量。 |
| 代码区 | * 存放程序的二进制代码。 * 内存由系统管理。 * 例如,程序的执行代码。 |

相关推荐
吴冰_hogan3 小时前
JVM(Java虚拟机)的组成部分详解
java·开发语言·jvm
东阳马生架构11 小时前
JVM实战—1.Java代码的运行原理
jvm
ThisIsClark13 小时前
【后端面试总结】深入解析进程和线程的区别
java·jvm·面试
王佑辉13 小时前
【jvm】内存泄漏与内存溢出的区别
jvm
大G哥16 小时前
深入理解.NET内存回收机制
jvm·.net
泰勒今天不想展开16 小时前
jvm接入prometheus监控
jvm·windows·prometheus
东阳马生架构2 天前
JVM简介—3.JVM的执行子系统
jvm
程序员志哥2 天前
JVM系列(十三) -常用调优工具介绍
jvm
后台技术汇2 天前
JavaAgent技术应用和原理:JVM持久化监控
jvm