堆和栈的区别

2016-11-22  本文已影响19人  努力奔跑的小男孩

//基本数据类型的内存空间都在栈上,栈内存由系统去开辟和回收

//OC 中的对象类型的数据,存储在堆上,所谓的内存管理就是对对象的内存管理、对堆内存的管理

//系统中有一个链表存放着当前处于空闲状态的内存地址,当我们向系统申请内存时,系统会遍历这个链表,找到第一个内存大于等于我们所要申请的内存空间的堆结点,然后并将该结点分配给发起申请的对象,并将该结点从存储空闲内存空间的链表中移除

//当释放一个对象时,对象所占有的内存空间重新回到空闲状态,这时候系统又会将对象的堆结点,存入管理系统空闲空间的链表中,等待下一次分配

上一篇下一篇

猜你喜欢

热点阅读