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
    • 散列表:引用计数表,弱引用表


  • 相关阅读:
    sed命令用法详解
    Linux date命令的用法
    安装oracle客户端连接工具
    nginx安装
    orabbix监控oracle数据库
    Oracle数据库修改用户密码
    oracle数据库重启操作
    centos6.5安装oracle11.2.0.1.0数据库
    教你几招解决电脑假死现象
    (java实现)杭电oj 2097 Sky数
  • 原文地址:https://www.cnblogs.com/liuzhi20101016/p/13450231.html
Copyright © 2011-2022 走看看