boost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#include #include #include class implementation{public: ~impleme...
分类:
其他好文 时间:
2015-02-27 13:21:50
阅读次数:
181
(一)自动内存管理 --ARC1>简单点说就是让编译器完成堆空间的引用计数的加减,自动释放,程序员不再写retain 和release等方法 2>OC的自动内存管理不同于java 的垃圾回收,而是在预处理是直接在应该保留的地方加上retain,在应该改释放的地方加上release,是直接添加代码 ....
分类:
移动开发 时间:
2015-02-25 00:40:05
阅读次数:
151
C++拾遗--智能指针
前言
内存泄露是常见的问题,新标准中的智能指针从根本上解决了这个问题。所谓的智能指针,其智能性体现在:当没有对象使用某块动态分配的内存时,那就自动释放这片内存。
智能指针
下面这段程序可耗尽内存,导致程序崩溃。...
分类:
编程语言 时间:
2015-02-19 20:47:03
阅读次数:
240
//创建自动释放池 @autoreleasepool { //autorelease会将对象放入自动释放池中,并返回该对象本身 //当自动释放池销毁时,将自动调用对象的release方法 Person *p = [[[Person alloc]...
分类:
其他好文 时间:
2015-02-16 16:50:28
阅读次数:
127
synchronized、lock和Atomic的区别:synchronized:synchronized是在JVM层面上实现的,不但可以通过一些监控工具监控synchronized的锁定,而且在代码执行时出现异常,JVM会自动释放锁定;在资源竞争不是很激烈的情况下,偶尔会有同步的情形下,synch...
分类:
编程语言 时间:
2015-02-15 14:53:32
阅读次数:
149
操作系统的内存分配问题与内存对齐问题对于地层程序设计来说是非常重要的,对内存分配的理解直接影响到代码质量、正确率、效率以及程序员对内存使用情况、溢出、泄露等的判断力。而内存对齐是常常被忽略的问题,理解内存对齐原理及方法则有助于帮助程序员判断访问非法内存。一般c/c++程序占用的内存主要分为以下五种:
1.栈区(stack):系统自动分配,由程序自动创建、自动释放。函数参数、局部变...
分类:
编程语言 时间:
2015-02-09 09:32:36
阅读次数:
241
自动释放池的原理:每一次运行循环开启时,会创建自动释放池程序执行过程中的自动释放对象,出了作用域之后,会被添加到最近的自动释放池运行循环结束前,会释放自动释放池以下是图解:
分类:
其他好文 时间:
2015-02-07 11:37:57
阅读次数:
142
一.autorelease方法 又叫做半自动释放1.调用方式--【对象变量 autorelease】他会返回对象本身,并且会将对象放到一个自动释放池(自动释放池也是个对象)2.方法运行原理:当自动释放池被销毁时,会对池子里面的所有对象做一次release操作3.@autoreleasepool{}-...
分类:
其他好文 时间:
2015-02-07 00:22:26
阅读次数:
243
1.作用1.1 给对象发送一条autorelease消息, 会将对象放到一个自动释放池中1.2 当自动释放池被销毁时,会对池子里面的所有对象做一次release操作1.3 会返回对象本身1.4 调用完autorelease方法后,对象的计数器不变2.好处2.1 不用再关心对象释放的时间,有利于规避坏...
分类:
移动开发 时间:
2015-02-04 00:14:17
阅读次数:
1589