一、垃圾回收机制(GC garbage collection):
1、由一个系统级的线程自动检查释放无用对象占用的内存。
2、垃圾回收机制有多重不同的算法来实现垃圾回收机制。但是整体的思路是:发现无用对象->回收无用对象占用的空间。
3、垃圾回收机制的优缺点:
优点:自动释放内存,简化编程,提高编程效率。防止了内存泄漏,保证安全。
缺点:jvm必须追踪程序中有用的对象,释放无用对象,这个过程要花费处理器时间,开销影响程序的性能。采用的算法的优劣也对垃圾回收的效率有很大的影响。
二、arc(Automatic Reference Counting 自动引用计数)
1、简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。
2、ARC并不是GC,它只是一种代码静态分析(Static Analyzer)工具。
三、 mrc(Manual Reference Counting 手动引用计数)
1、当 retainCount为零时,会自动的调用对象的dealloc方法进行内存的释放回收,我们永远都不应该手动调用对象的dealloc方法。
四、初始化问题
1、new和alloc/init在功能上几乎是一致的,分配内存并完成初始化。差别在于,采用new的方式只能采用默认的init方法完成初始化,采用alloc的方式可以用其他定制的初始化方法。
2、alloc时对象进行内存大小的配置,内存具体的大小由该对象的属性、实例变量、方法的内存地址的综合。alloc时只是简单的进行了变量和方法的地址内存的配置,属性和变量的具体大小是在init时进行动态的非配的。
原文地址:http://www.cnblogs.com/yanggongfu/p/3798191.html