美文网首页
内存管理 引用计数 深浅拷贝

内存管理 引用计数 深浅拷贝

作者: 向日葵_wwx | 来源:发表于2016-01-05 22:11 被阅读156次

内存管理 引用计数 深浅拷贝
常量区:可变和不可变
内存管理原则
/**1.谁创建。谁释放 alloc relese/autorelese
2.谁持有,谁释放 retain relese/autorelese
* 3.没有retain和alloc和COPY就不需要release,有就一定要释放

<1>引用计数:就是看见alloc . copy retain 的时候就说明该对象的引用计数加一了,就得给出相对应的release来释放它,手动释放完对象后,系统会自动调用dealloc方法,来释放自己的属性,但是基本数据类型不需要释放,因为引用计数只对对象起作用,在dealloc方法中先释放自己的属性,最后在释放父类的属性,dealloc方法是在当对象的引用计数为1时系统再次调用release方法时。系统就会自动走这个dealloc方法
⁃ (void)dealloc{
⁃ [_name realese];
⁃ [super dealloc];
⁃ }
<2>输出引用计数的方法:[对象名.方法名 stu1.retainCount ];

<3>释放顺序和初始话是相反的:先释放自己,在释放父类的
在Mac中,当所有的对象都被释放的时候我们会调用deall方法

方法实现时的两种选择
<1>@required 这个是必须实现的,也是默认的
<2>optional 这个是可选的,当我们没有选择的时候一般用的是默认的,也就是必须实现的方法

判断类里面的这个方法有没有实现:

深拷贝与浅拷贝
<1>浅拷贝是将p的内容赋给另一个指针q。(p里面存储的是地址)这样两个指针指向同一个内存地址。
深拷贝是另外开辟一块存储空间。将p指向的地址中的内容复制到新开辟的存储空间。而q则指向新开辟的存储空间。

<2>深拷贝与浅拷贝
浅拷贝:就是指将A的名字复制给B,但是更改B的名字的时候,A的名字不会改变
深拷贝:对象,对象内部的引用均复制。然后更改B对象属性的时候,A对象的属性也会跟着改变

不可变字符串的引用计数为什么是整数的最大值:它的引用计数永远都是-1

相关文章

  • 内存管理 引用计数 深浅拷贝

    内存管理 引用计数 深浅拷贝常量区:可变和不可变内存管理原则/**1.谁创建。谁释放 alloc r...

  • Obj-C高级编程--内存管理

    自动引用计数 自动引用计数:指内存管理中对引用采取自动计数的技术。 内存管理/引用计数 持有对象引起引用计数加...

  • 内存管理与自动引用计数—第一日

    自动引用计数 1.1 什么是自动引用计数 内存管理中对引用采用自动计数的计数 1.2 内存管理/引用计数 这一张举...

  • iOS内存管理1:引用计数

    iOS内存管理1:引用计数 引用计数: Objecttive-C使用引用计数来进行内存管理。然后,引用计数其实是不...

  • sharedptr的简单实现

    介绍 标准库中的sharedptr简化了内存管理,其内部使用了引用计数,当计数为0的时候就释放内存。 当发生拷贝构...

  • Effective Objective-C 2.0笔记(四)

    第五章 内存管理 第29条:理解引用计数 OC使用引用计数管理内存,引用计数机制通过递增递减的计数器来管理内存。对...

  • EffectiveObjective-C2.0 笔记 - 第五部

    5 内存管理 5.1 理解引用计数 1、引用计数 Objective-C 语言使用引用计数来管理内存,每个对象都有...

  • Effective Objective-C 2.0 总结(五)

    内存管理 第 29 条:理解引用计数 引用计数工作原理 Objective-C 语言使用引用计数来管理内存,每个对...

  • Objective-C高级编程之内存管理篇

    iOS的内存管理是采用引用计数的方式,引用计数分为手动引用计数和自动引用计数(ARC)。前者要求开发者手动管理内存...

  • 目录

    第1章自动引用计数 1.1什么是自动引用计数 1.2内存管理/引用计数 1.2.1概要1.2.2内存管理的思考方式...

网友评论

      本文标题:内存管理 引用计数 深浅拷贝

      本文链接:https://www.haomeiwen.com/subject/fruzhttx.html