A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


MRC
为什么要有内存管理?
       不对内存管理的话会造成内存的泄露
内存管理主要是对内存中的哪个区进行 管理?为什么?  全局变量没初始化在bss段  初始化之后在数据区
       堆区,堆区的内存由程序员手动申请和释放,如果不进行管理会造成僵尸对象从而内存泄露.
内存管理的范围?
       对继承NSObject的对象进行管理,对其他基本类型无效.


什么是引用计数器?
     用来计算当前对象的拥有者的个数.
系统是通过什么来管理一个对象的内存的?
     引用计数器的值
系统如何引用计数器的操作?
      retain使计数器加一  release  使计数器减一

内存管理的原则?
   1, 只要还有人在使用某个对象,那么这个对象就不会被回收
      如果想使用这个对象 应该让对象先retain一次
      如果不想使用这个对象了,应该让这个对象release
   2, 谁创建,谁release  这个谁指的是对象类型的指针
   3,谁retain 谁release   这个谁指的也是对象类型的指针   retain 之后返回的是一个对象

内存管理研究的内容?
    野指针     1)定义指针没有被初始化    2)对象空间被释放了但是指针变量还在
    内存泄露  栈区的变量被释放,而堆区的对象没有被释放  
  如果一个对象被释放了这是这个对象就叫僵尸对象
如何避免野指针?(野指针是指向垃圾内存的指针,空指针是指向NULL的指针)
    1,开启僵尸对象检测
     2,使指针指向nil

nil/Nil/NULL的区别
   nil   是给对象指针赋值
   Nil   是给类对象赋值  class类型
   NULL  通用指针


常见对象的内存泄露的原因?
内存泄露的3中情况    (无非就是创建的对象没有及时释放)
   1, 创建之后 没有release   局部变量指针释放但是对象没有释放  
   2,retain 之后没有release   
   3,不当的使用nil    造成对象指针无法retain 和release  从而造成内存泄露
   4,在方法的内部retain 但是没有release  也会造成内存泄露
类与类组合的三个关系:组合 ,依赖,,关联

栈区的已经被回收,堆区的没有被释放    叫内存泄露

评分

参与人数 1黑马币 +3 收起 理由
大魔王seven + 3 很给力!

查看全部评分

19 个回复

倒序浏览
黑马 顶起      
回复 使用道具 举报
黑全面给个赞!
回复 使用道具 举报
内存管理好复杂
回复 使用道具 举报
整理的很好
回复 使用道具 举报
笔记都是自己总结收货的精华
回复 使用道具 举报
linexs 中级黑马 2015-11-21 23:45:37
7#
----------华丽的分割线----------
雁过留声,人过留名,回帖是一种美德,谢谢!
回复 使用道具 举报
整理的不错!赞一个
回复 使用道具 举报
cc_2436 中级黑马 2015-11-26 22:49:55
9#
666666666666
回复 使用道具 举报
顶起加油
回复 使用道具 举报
看起来思路是清晰啊,,但就是不是很理解
回复 使用道具 举报
内存泄露是指程序在运行过程中动态申请的内存空间不再使用后没有及时释放,从而很可能导致应用程序内存无线增长。更广义的内存泄露包括未对系统的资源的及时释放,比如句柄等。
回复 使用道具 举报
Mr.Yan 中级黑马 2015-11-26 23:45:08
13#
僵尸对象!{:2_34:}
回复 使用道具 举报
liuch111 发表于 2015-11-26 23:43
内存泄露是指程序在运行过程中动态申请的内存空间不再使用后没有及时释放,从而很可能导致应用程序内存无线 ...

OutOfMemory  oom
回复 使用道具 举报
顶!!!!!!!!!!!
回复 使用道具 举报
OutOfMemory  oom     
回复 使用道具 举报
blazehot18 来自手机 中级黑马 2015-11-26 23:58:15
17#
厉害!超赞!
回复 使用道具 举报
好东西,感谢分享
回复 使用道具 举报
已收藏!!!
回复 使用道具 举报
笔记很全加油!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马