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

    什么是堆,程序员分配释放(储存OC对象),如new、 alloc init等需要使用完后dealloc释放内存

    什么是栈,编译器自动分配释放   ,存放函数的参数值,局部变量的值。(由系统自动收回)

    静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。

    为什么基本数据类型使用弱指针,不需要自己去释放?

    答:OC的对象以堆的方式分配内存,堆区的内存需要程序员自己去回收。非OC对象则放在栈区,由系统自动去回收。(堆里面的内存是动态分配的,所以也就需要程序员手动的去添加内存、回收内存)

     static作用

    修饰局部变量:

    1.让局部变量只初始化一次 

    2.局部变量在程序中只有一份内存

    3.分配在静态存储区,该变量在整个程序执行期间不释放,其所分配的空间始终存在

    4.改变了局部变量的生命周期(只到程序结束,这个局部变量才会销毁)

    修饰全局变量:

    1.该变量的作用域只限于本文件模块(全局变量的作用域仅限于当前文件,即被声明的文件中)如单例的声明

  • 相关阅读:
    java基础 类 & 继承
    java基础之 hashmap
    tomcat 详解
    hash算法
    素数
    『战略游戏 最大利润 树形DP』
    『宝藏 状态压缩DP NOIP2017』
    『玩具装箱TOY 斜率优化DP』
    『数组的最大代价 贪心优化DP』
    『最大M子段和 线性DP』
  • 原文地址:https://www.cnblogs.com/mojiewei/p/6424531.html
Copyright © 2011-2022 走看看