内存管理

原创 2015年07月09日 17:32:47

 内存管理的对象:OC中的对象,对基本类型无用

 OC中采用引用计数器对内存管理

 OC中每个对象都有一个引用计数器,是一个整数,表示对象被引用的次数(有多少个人在使用它)

 每个对象会分配4字节的存储空间存引用计数器

 当采用allocnewcopy(mutableCopy)构造一个新对象时,新对象的引用计数器值为1.

 当引用计数器值为0时,这个对象所占的内存就会被释放(也就是说,只要这个对象的引用计数器值不为0,它所占的空间永远不会被释放,除非整个程序退出)

 当给对象发送retain消息,引用计数器值+1

 当给对象发送release消息,引用计数器值-1

 给对象发送retainCount消息,可以获取引用计数器值

 当一个对象的引用计数器值为0时,这个对象所占的空间就会被释放

 当对象被释放时,就会给它发送dealloc消息。不能手动调用,系统自动调用

 一般会重写dealloc方法,重写时,一定要调用[super dealloc];一般放在最后

 引用技术:

 ARCautomatic references counting

 MRC: manual references counting

 黄金法则:

 1、当采用allocnewcopy(mutableCopy)构造一个新对象时,新对象的引用计数器值为1.

 2、如果想要拥有某个对象,需要给它发送retain消息

 3、如果不想使用某个对象,需要给它发送release或者autorelease消息

 4、谁allocnewcopy了,谁需要release

 5、谁retain,谁release


过度释放,不能再次释放已经释放的空间,p是一个野指针(指向一个已经被释放的内存空间,空间不可用)

nil发送消息,不能给野指针发送消息


深入理解linux虚拟内存管理

  • 2017年12月04日 09:05
  • 3.79MB
  • 下载

关于java内存管理的一些理解

  • 2017年11月22日 14:33
  • 195KB
  • 下载

linux 内存管理分析之-----SLAB层

SLAB层:               想必大多数人一提起linux内存管理,第一反应是"啊,特么的怎么这么复杂",哈哈,其实就是看书时蒙蔽了,别急,兄弟我陪你捋捋. 正经的来吧:  (1)    ...

C++内存管理.txt

  • 2017年11月11日 14:50
  • 88KB
  • 下载

内存管理(链表,指针操作,繁琐)

内存管理 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...
  • cs_zlg
  • cs_zlg
  • 2012年08月11日 10:55
  • 1049

内存管理-需求文档

  • 2016年02月20日 15:27
  • 23KB
  • 下载

深入LINUX虚拟内存管理中英文

  • 2016年05月30日 17:46
  • 46.82MB
  • 下载

Linux_x86_64BIT内存管理与分布之数据库场景之一

从Linux系统看内存的使用情况和分布情况着实一片混乱. 为此我们接着上篇 http://blog.csdn.net/zengmuansha/article/details/51776899 部分...

内存管理边界标记法

  • 2015年05月15日 16:34
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:内存管理
举报原因:
原因补充:

(最多只允许输入30个字)