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

    在OC中当使用 new alloc  和copy创建一个对象时 该对象的计数器值为1 ,当不再使用该对象时要对该对象发出一条release 或autorelease这样该对象在寿命结束时被销毁。2.当你通过任何其他方法获得一个对象时,则假设该对象的保留计数器值为1,而且已经被设置为自动释放,你不需要执行任何操作来确保该对象被清理  。如果你打算在一定时间内拥有该对象,则需保留它并确保在操作完成时释放它。3.如果你保留了某个对象,逆需要(最终)释放或自动释放该对象,必须保持retain方法和release方法的使用次数相等.

    在C++中,内存分成5个区,分别是自由存储区全局/静态区常量存储区。:存放函数参数以及局部变量,在出作用域时,将自动被释放.栈内存分配运算内置于处理器的指令集中,效率很高,但分配的内存容量有限. :new分配的内存块(包括数组,类实例等),需delete手动释放.如果未释放,在整个程序结束后,OS会帮你回收掉.  堆与栈的主要区别管理方式不同: 栈是编译器自动管理的,堆需手动释放malloc/free new/delete有了malloc/free为何还需要new/delete呢? malloc/free是标准库函数,而new/delete是运算符,它们都可用于申请/释放动态内存.但对于非基本数据类型(比如类对象)而言, malloc/free无法自动执行对象的构造/析构函数.而new/delete却可以.

  • 相关阅读:
    解决IE6不支持position:fixed的bug
    响应式Web设计基础
    多行文本溢出显示省略号(…)全攻略
    解读CSS布局之-水平垂直居
    理解CSS中BFC
    七个你可能不了解的CSS单位
    屏蔽系统热键钩子Hook程序
    Win 2008 r2 远程桌面多用户登陆,一用户多登陆配置
    把Excel转换成DataTable,Excel2003+
    DataGridView不显示未绑定的列-AutoGenerateColumns
  • 原文地址:https://www.cnblogs.com/tianlianghong/p/5232569.html
Copyright © 2011-2022 走看看