美文网首页
内存管理的理解

内存管理的理解

作者: 萤火驻守心间 | 来源:发表于2022-08-16 21:52 被阅读0次

1.在非ARC的情况下,谁创建谁释放,当对对象进行alloc,new,retain,copy时,需要调用release或autorelease释放。当引用计数为0的时候,会调用dealloc方法销毁当前对象。

2.在ARC的情况下,任何强指针(strong,retain)指向的对象就会被销毁;任何弱指针(assign)指向的对象就不会被销毁;默认情况下对象都是强指针类型。

3.自动释放池是OC的一种内存自动回收机制,可以将一些临时变量通过自动释放池来回收统一释放;内存池autoreleasepool是用于管理那些被声明为autorelease的对象,系统中有成千上万个内存池,系统内存不足时,系统会从栈中取最顶层的池子把引用计数为0的对象释放掉,收回的内存給当前应用程序使用。

自动释放池本身销毁的时候,池子里面所有的对象都会做一次release操作。

在使用block的时候,一定要注意不能在block里面直接对对象进行操作,而是要是要使用__block或__weak进行修饰,避免循环引用,造成内存泄漏。

相关文章

  • 内存管理

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

  • 《Effective Objective-C 2.0》读书笔记(

    第五章 内存管理 第29条:理解引用计数 OC 中有手动内存管理(MRC) 自动内存管理(ARC)手动内存管理需要...

  • Android性能优化-内存泄漏的几个案例

    JVM内存管理 Java采用GC进行内存管理。深入的JVM内存管理知识,推荐《深入理解Java虚拟机》。 关于内存...

  • 内存管理篇,RunLoop

    iOS内存管理 RunLoop理解

  • 理解内存管理

    • 堆和栈 内存泄露、野指针 堆和栈是逻辑分区也是物理分区。Stack Overflow,堆栈溢出是一起溢出的。堆...

  • 理解内存管理

    引用计数简介 引用计数可以有效的管理对象的生命周期。当我们创建一个对象的时候,它的引用计数为1。当有一个新的指针指...

  • 内存管理的理解

    1.在非ARC的情况下,谁创建谁释放,当对对象进行alloc,new,retain,copy时,需要调用relea...

  • 编写高质量的代码

    内存管理 理解内存和Objective-C内存管理规则 内存管理,曾经是程序猿/媛们的噩梦,特别是在面向过程中。虽...

  • 内存管理面试题

    讲一下 iOS 内存管理的理解 讲一下 iOS 内存管理的理解实现原理 内存中的5大区分别是什么? ARC 的 r...

  • 基本知识摘录

    一:内存管理的理解首先iOS中数据是存贮在堆和栈中的。内存管理需要管理堆上的内存,栈上的内存并不需要我们管理。非O...

网友评论

      本文标题:内存管理的理解

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