OC中,内存一般分为五大区域
-
栈
- 存储局部变量和实参
- 由编译器自动分配释放
- 存储空间有限
- 地址是连续的
- 地址分配从大到小
- 访问速度快
-
堆
- 允许程序员自己申请的空间,需要程序员自己控制,会出现内存泄漏
- 使用 new 方法创建的对象保存在堆区
- 被创建对象的所有成员变量保存在堆区中
- 地址是不连续的
- 速度没有栈区快。地址不连续,有一个寻中的过程
-
BSS段 (静态区)
- 存储没有初始化的全局变量和静态变量
-
数据段 (常量区)
- 用来存储已经初始化的全局变量,静态变量还有常量
-
代码段
- 用来存储程序的代码。