1、Objective-c语言中的MRC(MannulReferenceCounting)在MRC的内存管理模式下,对变量的管理相关的方法有:retain,release和autorelease。retain和release方法操作的是引用记数器,当引用记数为零时,便自动释放内存。并且可以用NSAu...
分类:
其他好文 时间:
2015-12-08 22:09:28
阅读次数:
189
autorelease基本使用autorelease注意事项autorelease基本使用本小节知识点:【理解】autorelease基本概念【理解】自动释放池3. 【理解】autorelease基本使用1.autorelease基本概念autorelease是一种支持引用计数的内存管理方式,只要给...
分类:
其他好文 时间:
2015-12-03 19:08:41
阅读次数:
174
1.ARC下用 @autoreleasepool {}主要还是为了避免内存峰值。简单点的说在{}中存放的对象会在稍后的某个时刻释放掉(1)在自动释放池@autoreleasepool{}中alloc一个对象后(如p1),仍然需要用[p1 autorelease];只是这个语句和[p1 release...
分类:
其他好文 时间:
2015-12-03 11:24:10
阅读次数:
176
概述我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上)。如果一个对象创建并使用后没有得到及时释放那么就会占用大量内存。其他高级语言如C#、Java都是通过垃圾回收来(GC)解决这个问题...
分类:
移动开发 时间:
2015-12-02 22:32:13
阅读次数:
284
synchronized关键字又称同步锁当方法执行完后,会自动释放锁,只有一个线程能进入此方法看看以下的各种例子对synchronized的详细解释1.是否加synchronized关键字的不同 1 public class ThreadTest { 2 3 public static v...
分类:
编程语言 时间:
2015-12-02 12:33:46
阅读次数:
191
ios sdk把引用计数封装到了NSAutoreleasePool中,Cocos2d-x也克隆了一套CCAutoreleasePool 两者用法一致注意以下两点CCAutoreleasePool 不能被开发者自己创建,Cocos2d-x为每个游戏创建一个自动释放池实例对象,我们不能新建自动释放池,需...
分类:
其他好文 时间:
2015-11-27 13:00:01
阅读次数:
507
程序文件分为头文件(.h)和实现文件(.m);使用#import关键字将所需的头文件导入程序,并且可以避免程序重复引用相同的头文件;@autoreleasepool { … } 自动释放池;符号“@”被广泛使用,体现Objective-C的新特性;使用NSLog执行控制台打印输出内容(例如:NSLo...
分类:
其他好文 时间:
2015-11-24 22:58:35
阅读次数:
175
成员变量:写在类声明的大括号中的变量, 我们称之为 成员变量(属性, 实例变量)成员变量只能通过对象来访问注意: 成员变量不能离开类, 离开类之后就不是成员变量成员变量不能在定义的同时进行初始化存储: 堆(当前对象对应的堆的存储空间中)存储在堆中的数据, 不会被自动释放, 只能程序员手动释放@int...
分类:
其他好文 时间:
2015-11-23 12:55:37
阅读次数:
125
Sychronized锁住代码块,执行代码块。释放锁: 1.获取锁的线程执行完,并释放锁的占有2.执行发生异常,JVM让线程自动释放锁缺点: 1.异常只会被抛出,不能被解决,维护系统正常Lock public interface Lock{ void lock();//获取锁,锁已被其他线程获取,进...
分类:
编程语言 时间:
2015-11-22 23:09:30
阅读次数:
254
内存管理主要内容1.内存管理的概念2.引用计数3.如何持有对象所有权4.自动释放池5.@property的使用什么是内存管理内存管理是关于如何管理对象生命周期的编程原则。int main(int argc, char *argv[]){ int value = 1...
分类:
其他好文 时间:
2015-11-21 11:44:40
阅读次数:
159