• iOS内存小知识


    //ios没有垃圾回收机制,oc有垃圾回收机制,mac有垃圾回收机制,mac在10.1版本后被启用
    //mrc(引用计数)手动分配并释放
        
    //alloc 分配空间
    //retain 引入计数加1
    //copy  复制(另开辟空间,和原来的一样)
    //release 释放,引用计数减1
    //autorelease 在未来某一时刻减1
    //dealloc  清除

     //内存中会出现的问题:内存溢出,野指针
           //gc:垃圾回收机制,可以自动判断那些内存是不再使用的,由系统帮助我们回收
           //MRC:手动内存管理,也叫手动引用计数,由我们自己判断那块内存还在使用,同时判断有多少人在使用.当引用计数为0的时候,内存释放,同时指针置空,防止野指针
           //ARC:自动内存管理,也叫自动引用计数,当我们需要引用计数-1时,由编译器帮我们添加release语句
           //OC提供了垃圾回收机制,但是ios并未采用
           //Mac OS 10.8之前使用垃圾回收机制,10.8之后弃用.
           
           
           
           //关于引用计数的一些方法
           //+alloc:开辟内存,设置引用计数为1.
           //-retain:使引用计数+1.
           //-copy:将内存或对象赋值一份,并将复制的内存或对象引用计数置1.
           //-release:使引用计数-1.
           //-autorelease:使引用计数-1,只不过是在出自动释放池之后才执行-1操作
           //-dealloc:当引用计数为0时,由系统自动调用,释放空间
           //自动释放池有两种形式:(优先使用第一种)
              //第一种:@autorelease{}
              //第二种:NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
                   //[pool release];
           
          //当释放已经为0时再释放 会产生过度释放
           
           

  • 相关阅读:
    桶排序
    linux下如何修改进程优先级?
    在旋转排序数组之后的数组中找到目标值的位置(很多遍 ,总是晕)
    PHP生成随机数函数rand(min,max)
    使用PHP编写发红包程序
    maven的lifecycle
    mysq中char,varchar,text的区别
    contrller层的编码设设计流程以及详细配置
    mybatis的dao层和service层的编码设计的配置
    Next_day()函数的用法
  • 原文地址:https://www.cnblogs.com/-ios/p/4672995.html
Copyright © 2020-2023  润新知