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循环结束的时候

上一篇下一篇

猜你喜欢

热点阅读