retain,release,autorelease;
在ios中,堆区的内存是应用程序共享的,堆中的内存分配是系统负责的;
全局区
包括2个部分:未初始化和初始化; 也是说,在内存中是放在一起的,比如...:int a;未初始化, int a = 10 初始化的 2者都在全局区/静态区;
常量区:常量字符串及时放在这里的;
代码区:存放app代码;
tips:
堆区需要程序猿管理内存,是由alloc分配的内存...,一般速度比较慢,容易产生内存碎片;
栈区不需要程序猿管理内存,由编译器自动分配并释放,速度快;
当一个app启动后,代码区,常量区,全局区大小都是已经固定的,因此指向这些区的指针不会产生崩溃性的错误,...验证示例:
未完待续
iOS引用计数原理
- 引用计数机制只使用在堆中,那么所有不保存在堆中的数据的引用计数都为-1。...- 在OC中几乎所有不可变对象(常量)都存在常量区,内存管理由系统来做,引用计数为-1。
- 对象引用计数降至0,那么对象所在的内存也许会回收。