iOS备忘录

2018-07-22  本文已影响0人  扯淡的青春_

内存的几大区域

1.栈区 局部变量和实参
2. OC中用new,alloc 方法创建的对象
3.BSS段 没有初始化的全局变量和静态变量
4.常量区/数据段 用来存储已经初始化的全局变量、静态变量、常亮数据
5.代码段 代码的二进制文件

OC内存堆栈

内存泄漏话术

内存泄漏:程序结束了,对象内存没有释放
僵尸对象:已经被释放,空间已经释放的对象
野指针:指向僵尸对象的指针
空指针:指向nil的指针,给空指针发送消息(调用方法)不会报任何错误

static

所有未加static前缀的全局变量函数都具有全局可见性,其他的源文件也能访问。如果加了static,就会对其他源文件隐藏。
利用这一特性可以在不同的文件中定义同名函数同名变量,而不必担心命名冲突。

互斥锁与自旋锁

结论:自旋锁效率会比较高,但是消耗的CPU资源会更多,所以我们一般耗时的操作都会选择互斥锁,这样就不会占用过多的CPU资源。

持续更新中....

上一篇下一篇

猜你喜欢

热点阅读