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

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

相关推荐
未若君雅裁10 小时前
JVM面试篇总结
java·jvm·面试
kk哥889910 小时前
C++ 对象 核心介绍
java·jvm·c++
Jaising66613 小时前
PF4J 日志类冲突与 JVM 类加载机制
jvm·后端
2301_7737303115 小时前
系统编程—线程
jvm
葛二蛋16 小时前
深入ClassLoader:从双亲委派到SPI
jvm
MicoZone16 小时前
jvm(更新中)
jvm
东华万里18 小时前
Release 版本禁用 assert:NDEBUG 的底层逻辑与效率优化
java·jvm·算法
听风吟丶21 小时前
Java NIO 深度解析:从核心组件到高并发实战
java·开发语言·jvm
a努力。21 小时前
小红书Java面试被问:ThreadLocal 内存泄漏问题及解决方案
java·jvm·后端·算法·面试·架构
4***149021 小时前
高并发时代的“确定性”挑战——为何稳定性正在成为 JVM 的下一场核心竞争?
java·开发语言·jvm