zoukankan      html  css  js  c++  java
  • iOS内存管理

    内存管理

    内存管理 环境包括:

    • 内存布局(五大区、全局变量、静态变量...)
    • 内存管理方案(散列表、ARC、MRC、tagged pointer、none point...)
    • RAC&MRC
    • 引用计数
    • 弱引用(weak维护了一和弱引用表)
    • 自动释放池(涉及到RunLoop)

    内存布局 五大块:

      

    • 栈区:函数,方法
    • 堆区:通过alloc分配的对象,block copy
    • BSS段:未初始化的全局变量,静态变量
    • 数据段:初始化的全局变量,静态变量
    • text:程序代码,加载到内存中
    • 栈区内存地址:一般为:0x7开头
    • 堆区内存地址:一般为:0x6开头
    • 数据段,BSS内存地址:一般为:0x1开头
      面试题:全局变量和局部变量是否有区别?如果有,有什么区别?
      答:有,位置不同,所以访问权限不同,前者可供全局访问,后者在内部访问
     
      面试题:Block是否可以修改全局变量?
      答:可以修改,因为全局变量的作用域很大

     

     内存管理方案:

    • TaggedPointer:小对象-NSNumber,NSDate
    • NONPOINTER_ISA:非指针型isa
    • 散列表:引用计数表,弱引用表


  • 相关阅读:
    HDU 6984
    洛谷 P6776
    C语言 error C4996: This function or variable may be unsafe
    C语言 sizeof 函数
    C语言 strlen 函数
    C语言 char 字符串
    C语言 goto 语句
    C语言 switch 语句
    C语言 do while 和 while 循环
    C语言 while 循环
  • 原文地址:https://www.cnblogs.com/liuzhi20101016/p/13450231.html
Copyright © 2011-2022 走看看