|-----------|----------------------------------------------------------------------------------------------------------------|
| | 作用 |
| 栈区(stack) | * 存放函数的形参和局部变量(auto 类型),由编译器自动分配和释放。 * 生命周期与函数调用相关,函数结束时自动回收。 * 栈区的大小有限,通常较小。 * 例如,函数参数和局部变量。 |
| 堆区(heap) | * 由程序员手动申请和释放,需要注意避免内存泄漏。 * 存放动态分配的内存,如使用 malloc 或 new。 * 生命周期由程序员控制,程序结束时可能由操作系统回收。 * 例如,动态分配的对象、数组等。 |
| 全局/静态存储区 | * 存放全局变量和静态变量(包括静态全局变量和静态局部变量)。 * 初始化的全局变量和静态局部变量放在一块,未初始化的放在另一块。 * 生命周期从定义开始到程序结束。 * 例如,全局变量、静态变量。 |
| 代码区 | * 存放程序的二进制代码。 * 内存由系统管理。 * 例如,程序的执行代码。 |
程序运行时,常见存储区分类及作用
qq_454175792024-03-20 17:52
相关推荐
今天的砖头有点烫手啊7 小时前
JVM 调优实战:从 GC 日志到参数优化,一次完整排查JAVA面经实录91710 小时前
MySQL问题定位与性能优化完整知识体系LCG元12 小时前
【实战】树莓派物联网开发:DHT11温湿度采集与MQTT云上报全流程欢醉13 小时前
干货分享Gateway踩坑实录:Netty直接内存把网关吃垮了OutOfDirectMemoryErrorwuminyu1 天前
JDK21 FFM异步读取MSG_ZEROCOPY错误队列揭秘YH55269842 天前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?2602_959960922 天前
谢飞机面试大厂:Spring Boot、JVM、Redis、Kafka、微服务与音视频搜索场景求生实录wuminyu2 天前
JDK21中虚拟线程和FFM协同实现高并发源码剖析SWAGGY..2 天前
【C++进阶】:(1)继承机制详解一木 之林2 天前
三、内存管理、指针与堆栈