|-----------|----------------------------------------------------------------------------------------------------------------|
|           | 作用                                                                                                             |
| 栈区(stack) | * 存放函数的形参和局部变量(auto 类型),由编译器自动分配和释放。 * 生命周期与函数调用相关,函数结束时自动回收。 * 栈区的大小有限,通常较小。 * 例如,函数参数和局部变量。            |
| 堆区(heap)  | * 由程序员手动申请和释放,需要注意避免内存泄漏。 * 存放动态分配的内存,如使用 malloc 或 new。 * 生命周期由程序员控制,程序结束时可能由操作系统回收。 * 例如,动态分配的对象、数组等。 |
| 全局/静态存储区  | * 存放全局变量和静态变量(包括静态全局变量和静态局部变量)。 * 初始化的全局变量和静态局部变量放在一块,未初始化的放在另一块。 * 生命周期从定义开始到程序结束。 * 例如,全局变量、静态变量。            |
| 代码区       | * 存放程序的二进制代码。 * 内存由系统管理。 * 例如,程序的执行代码。                                                                         |
程序运行时,常见存储区分类及作用
qq_454175792024-03-20 17:52
相关推荐
程序员卷卷狗1 天前
JVM 调优实战:从线上问题复盘到精细化内存治理Sincerelyplz2 天前
【JDK新特性】分代ZGC到底做了哪些优化?初学小白...3 天前
线程同步机制及三大不安全案例凤山老林3 天前
还在用JDK8?JDK8升级JDK11:一次价值千万的升级指南2501_938790073 天前
详解 JVM 中的对象创建过程:类加载检查、内存分配、初始化的完整流程宸津-代码粉碎机3 天前
Java内部类内存泄露深度解析:原理、场景与根治方案(附GC引用链分析)杨筱毅3 天前
【底层机制】Android GC -- 为什么要有GC?GC的核心原理?理解GC的意义東雪木3 天前
Java基础语言进阶学习——1,JVM内存模型(堆、栈、方法区)小满、3 天前
JVM 执行引擎:字节码是如何被执行的无敌最俊朗@4 天前
SQLite 约束 (Constraints) 面试核心知识点