1.4、iOS面试题之内存管理
2020-06-14 本文已影响0人
zmfflying
1.堆和栈的区别
https://www.jianshu.com/p/c8e1d91dda99
Objective-C的对象在内存中是以堆的方式分配空间的,并且堆内存是由你释放的,就是release
OC对象存放于堆里面(堆内存要程序员手动回收)
非OC对象一般放在栈里面(栈内存会被系统自动回收)
堆里面的内存是动态分配的,所以也就需要程序员手动的去添加内存、回收内存
2.如何防止循环引用?
nstimer delegate block
3.内存使用如何优化?
https://blog.csdn.net/majiakun1/article/details/79228665
4.线上如何监测内存使用?
https://www.cnblogs.com/dsxniubility/p/5493117.html
https://blog.csdn.net/u011619283/article/details/78687673/
CPU占用率
5.内存泄漏可能会出现的几种原因,聊聊你的看法?
追问一:非OC对象如何处理?
追问二:若常用框架出现内存泄漏如何处理?
https://www.jianshu.com/p/3a50d1805655
6.ARC和MRC的本质区别是什么?
7.objc使用什么机制管理对象内存?
8.autorelease变量什么时候释放?手动添加的是大括号结束的时候释放,系统自动释放是在当前runloop循环结束的时候