objective-C学习笔记(二)类 class 和 结构 struct

Objective-C的类型

引用类型

类 class

指针 pointer

块 block

值类型

基础数值类型

结构 struct

枚举 enum

类型装饰

协议 protocol

类别 category

扩展 extension

 类 class 和 结构 struct

类: 引用类型(位于栈上面的指针(引用)和位于堆上的实体对象)

结构:值类型(实例直接位于栈中)

栈(stack) VS 堆(heap)

栈(stack):存储值类型

·无ARC负担,由系统自动管理,以执行函数为单位。

·空间大小是编译时确定(参数+局部变量)。

·函数执行时,系统会自动分配,结束时立即回收。

·函数之间通过拷贝值传递。

·具有局部性,大小有限额,超出会栈溢出(stack overflow)一般情况下不会,除非死循环和超大递归。

堆(heap):存储引用类型对象

·分配由程序员手动请求(创建对象时)

·释放由运行时ARC机制自动释放(确定时)

·函数之间通过拷贝引用(指针)传递

·具有全局性,总体大小无限制(受制于系统内存整体大小)

·堆是最*也是最容易出问题的,比如内存泄漏。

其他:

传参:传参其实就是栈与栈之间的拷贝

要注意运行时内存图--”胸中有沟壑”

上一篇:java架构师之路,享学课堂VIP课程视频下载


下一篇:IOS性能调优系列:使用Instruments动态分析内存泄漏