pragma mark 内存管理基本概念
pragma mark 概念
/*
// 1.内存管理的重要性
#pragma mark 2.什么是内存管理
// 2.什么是内存管理 \
// 内存管理的管理范围 \
任何继承了NSObject的对象 都要进行内存管理 \
对于其他非 对象类型无需内存管理 (int、char、float、double、struct、enum)等
#warning 存储的对象 都会存放到堆里面, 栈里面系统会帮我们自动释放
// 只有OC对象才需要进行内存管理的本质原因 \
OC对象存放于堆 里面 \
非OC对象一般存放在栈里面(栈内存会被系统 自动回收)
#pragma mark 3.栈和堆
// 栈(操作系统): 由操作系统自动分配释放, 存放函数的参数值, 局部变量的值等,
// 其操作方式类似于 数据结构中的栈(先进后出);
// 堆(操作系统) : 一般有程序员分配释放, 若程序员不释放, 应用结束可能由OS回收,分配方式 到似于链表。
*/
pragma mark 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#pragma mark main函数
int main(int argc, const char * argv[])
{
int a = 10; // 栈
int b = 20; // 栈
// p : 栈
// person 对象(计算器 == 1) : 堆
/*
Person = *p = [[Person alloc]init];
*/
/*
记过上一行代码后, 栈里面的变量a\b\c都会被回收,
但是堆里面的Person对象还会留在内存中, 因为它是计数器 依然是1
*/
return 0;
}
网友评论