设计内容:
1)编码时支持;
2)编译时支持;
3)运行时支持;
所有运行时的内存管理都是针对虚拟内存进行管理的。
内存释放的三种方案:
1)用完即释放 c++;
2)事务完成即释放 autoReleasepool;
3) 内存不足即释放 java;
自动内存管理,无用内存标示的两种方案:
1)引用计数;
2)根节点不可达。
内存管理策略:
1)手动管理:c、c++;
2)引用计数;
3)垃圾收集。
运行时管理策略:
手动管理:内存分散管理,随时释放;
引用计数:
1)手动管理:计数为零时释放;
2)autoreleasePool:poolDrain时机:(1)运行循环;(2)多线程入口;(3)大内存管理;(4)循环管理;
垃圾收集:
Minor GC触发条件:当Eden区满时,触发Minor GC。