Oc作为面向对象语言,即含有类型系统,主要包括引用类型和值类型
引用类型主要有:类,指针,块
值类型主要有:基础数值类型,结构,枚举
类与结构的区别:类是引用类型:位于栈上的指针(引用),位于堆上的实例duixiang
结构是值类型:实例直接位于栈中
重点理解栈和堆的存储区别:
栈:存储值类型,由系统自动管理,没有ARC负担,以执行函数为单位,空间大小在编译的时候确定(参数+局部变量);函数执行时,系统会自动分配一个栈,函数结束时,系统会自动回收栈,函数之间通过拷贝值传递,具有局部性,大小有限度,超出了会出现栈溢出。
堆:存储引用类型对象,分配由程序员手动请求(手动),释放由ARC机制自动释放(确定时),函数之间通过拷贝引用(指针)传递,具有全局性,大小受到系统内存整体大小影响