美文网首页
ios内存管理机制2016

ios内存管理机制2016

作者: cj2527 | 来源:发表于2016-07-06 11:00 被阅读134次

1.说一说对内存管理的理解?(原理)
iOS内存管理机制的原理是引用计数,引用计数简单来说就是统计一块内存的所有权,当这块内存被创建出来的时候,它的引用计数从0增加到1,表示有一个对象或指针持有这块内存,拥有这块内存的所有权,如果这时候有另外一个对象或指针指向这块内存,那么为了表示这个后来的对象或指针对这块内存的所有权,引用计数加1变为2,之后若有一个对象或指针不再指向这块内存时,引用计数减1,表示这个对象或指针不再拥有这块内存的所有权,当一块内存的引用计数变为0,表示没有任何对象或指针持有这块内存,系统便会立刻释放掉这块内存。
其中在开发时引用计数又分为ARC(自动内存管理)和MRC(手动内存管理)。ARC的本质其实就是MRC,只不过是系统帮助开发者管理已创建的对象或内存空间,自动在系统认为合适的时间和地点释放掉已经失去作用的内存空间,原理是一样的。虽然ARC操作起来很方便,不但减少了代码量,而且降低了内存出错的概率,但因为ARC不一定会及时释放,所以程序有时候可能会占用内存较大。而MRC若做得好,通过手动管理,及时释放掉不需要的内存空间,便可保证程序长时间运行在良好状态上。

2.内存管理的原则?
谁创建,谁释放,谁+1,谁-1

3.为什么需要内存管理?
内存管理的两大问题:内存泄露(没有释放)和野指针(没有使用或者置空)

4.autoreleasePool和autorelease的作用?
AutoreleasePool(自动释放池)是OC中的一种内存自动回收机制,它可以延迟加入AutoreleasePool中的变量release的时机。在正常情况下,创建的变量会在超出其作用域的时候release,但是如果将变量加入AutoreleasePool,那么release将延迟执行。
看到这里有人可能会问,那到底延迟到什么时候执行呢?看完本文后,各位心中自然会有答案。
autorelease可以将变量加入autoreleasePool

5.MRC中符合内存管理的set方法的书写
(旧值release,新值retain,赋值)
if (car != _car) {
// 对当前正在使用的变量)做一次release
[_car release];
// 对新车做一次retain,赋值
_car = [car retain];
}

6.属性修饰符
7.什么时候使用autorelease?与release的区别
以下三种情况需要使用autorelease
a.写基于命令行的的程序时,就是没有UI框架,如AppKit等Cocoa框架时。
b.写循环,循环里面包含了大量临时创建的对象。
c.创建了新的线程。(非Cocoa程序创建线程时才需要)

release会释放掉该对象
autorelease会将对象加入到autoreleasePool中,延迟释放。

8.什么是自动释放池?
9.什么是ARC?MRC?

相关文章

  • 内存管理

    ARC内存管理机制详解理解 iOS 的内存管理

  • ios内存管理机制2016

    1.说一说对内存管理的理解?(原理)iOS内存管理机制的原理是引用计数,引用计数简单来说就是统计一块内存的所有权,...

  • iOS面试知识点

    1、ios内存管理机制 iOS内存管理机制的原理是引用计数,当这块内存被创建后,它的引用计数0->1,表示有一个对...

  • ios常见面试题总结

    1.谈一谈IOS内存管理机制。 IOS内存管理机制的原理是引用计数,当这块内存被创建后引用计数加1,这时若果有另一...

  • iOS 内存管理机制

    iOS内存管理机制原理 iOS内存管理机制的原理是引用计数,引用计数是一个简单而有效的管理对象生命周期的方式。当这...

  • IOS内存管理

    内存概述 内存是用来存啥的? 内存布局 哈希表 垃圾回收(GC) IOS内存管理机制 MRC & ARC T...

  • iOS内存管理

    iOS内存管理机制 基本数据类型无需我们管理,内存管理的范围是对象,iOS内存管理采用了引用计数器的方式来管理内存...

  • iOS内存管理retain,assign,copy,strong

    iOS目前已经是ARC 时代。但对于要想了解ARC的内存管理机制,还是依旧需要对MRC时代的内存管理机制有深刻的理...

  • 2020年iOS大厂面试题总结(一)

    2019年IOS面试题总结(一) 1. ios内存管理机制 2. NSThread、GCD、NSOperation...

  • 2022年iOS大厂面试题总结(一)

    2019年IOS面试题总结(一) 1. ios内存管理机制 2. NSThread、GCD、NSOperation...

网友评论

      本文标题:ios内存管理机制2016

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