iOS面试复习--内存管理
1.只有OC对象才需要进行内存管理的本质原因
--1.OC对象存放于堆中
--2.非OC对象存在栈中(栈内存会被系统自动回收)
2.堆和栈
--1.栈:由操作系统自动进行释放和分配,(存放函数的参数值,局部变量值等),其操作方式类似于数据结构中的栈(先进后出)
--2.堆:一般由程序员手动分配释放,若不释放,程序结束时可能由操作系统回收,分配方式类似于链表
非oc对象和局部变量存在于栈中,而alloc 出的类的实例对象在堆中,返回由栈中的p引用
3.引用计数
任何一个对象,刚产生时,引用计数都为1(当使用alloc、new、copy 创建一个对象时,对象的引用计数器默认就是1)
--1.retain 方法 引用计数+1
--2.release 方法 引用计数-1
--3.retainCount消息,获得对象当前的引用计数值
也就是说一次(alloc new copy)对应一次release ,一次retain 对应一次release
4.dealloc方法
当一个对象的引用计数为0时,该对象即将被销毁,占用的系统内存将被回收
对象即将被销毁是,系统会调用dealloc方法,重写dealloc 方法时 必须在最后调用[super dealloc]方法
5.野指针和空指针僵尸对象
--1.只要一个对象被释放了,我们就称这个对象为僵尸对象
当一个指针指向僵尸对象,则这个指针为野指针
只要给一个野指针发送消息就会报错
- 软件测试面试题大考问——搜狐篇
- 女子带2岁女儿面试孩子坠亡 法院判赔百万被告上诉
- 母亲带2岁女孩应聘面试时孩子坠亡 昨日二审开庭
- 中考五科复习方法,真的很有用,送给需要的人!
- 近 8 万首手写诗词,都藏在这个古风 App 里 - 郢雪 #iOS
- 期末复习必备!4-6年级数学上册全册易错题大汇总+解析
- 新增劲爆|知名老师春考系列复习在线课+高三一模押题课+一模|生物
- iPhone X/8去升级:iOS 11新更新修复摄像头大Bug
- 人行备考直播 | 面试必考题型之“人际沟通”
- 【人工智能工程师】掌握这10个项目,秒杀90%面试者!