|-----------|----------------------------------------------------------------------------------------------------------------|
| | 作用 |
| 栈区(stack) | * 存放函数的形参和局部变量(auto 类型),由编译器自动分配和释放。 * 生命周期与函数调用相关,函数结束时自动回收。 * 栈区的大小有限,通常较小。 * 例如,函数参数和局部变量。 |
| 堆区(heap) | * 由程序员手动申请和释放,需要注意避免内存泄漏。 * 存放动态分配的内存,如使用 malloc 或 new。 * 生命周期由程序员控制,程序结束时可能由操作系统回收。 * 例如,动态分配的对象、数组等。 |
| 全局/静态存储区 | * 存放全局变量和静态变量(包括静态全局变量和静态局部变量)。 * 初始化的全局变量和静态局部变量放在一块,未初始化的放在另一块。 * 生命周期从定义开始到程序结束。 * 例如,全局变量、静态变量。 |
| 代码区 | * 存放程序的二进制代码。 * 内存由系统管理。 * 例如,程序的执行代码。 |
程序运行时,常见存储区分类及作用
qq_454175792024-03-20 17:52
相关推荐
EatFan34 分钟前
2026 Java 后端面试风向变了:八股文只是门槛,场景化追问才是淘汰线wuminyu19 小时前
Virtual Thread重投递至ForkJoinPool任务队列过程解析2601_962071572 天前
类变量和全局变量的生命周期有什么区别?用户094248568032 天前
第23章:OpenJDK逃逸分析、标量替换与锁优化wuminyu2 天前
LockStack在虚拟线程Mount和Unmount拷贝过程剖析2601_962071572 天前
类变量和全局变量的隔离性有什么区别?估值探索者2 天前
【Python量化系统工程实战 #01】数据存储选型 CSVSQLiteMySQL 对比与 SQLite 实战建库打工仔折腾 AI3 天前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解用户094248568033 天前
第22章:JIT编译分层——Interpreter、C1、C2与热点探测乌暮3 天前
JVM 原理与实践:从运行时数据区到线上故障排查