Android开发经验谈Android技术知识Android开发

Android与iOS内存回收机制区别

2018-11-07  本文已影响25人  土豆吞噬者

iOS的内存回收机制

IOS采用引用计数算法回收内存,当对象引用计数为0时,对象会执行反初始化方法并被回收。如果两个对象互相引用对方,就会造成循环强引用,导致内存泄漏。

Android内存回收机制

Android采用的是根搜索算法回收内存,该算法通过GC Roots作为起点搜索,搜索通过的路径称为引用链,当一个对象没有被GC Roots的引用链连接的时候,这个对象就会被回收。即使A和B两个对象互相引用对方,只要A和B都不在引用链上,这两个对象都会被回收。

下图中的每个圆节点代表对象,箭头代表可达路径,当圆节点与 GC Roots 存在可达路径时,表示无法回收(黄色圆节点),反之则可以回收(蓝色圆节点)。


GC Root

上一篇下一篇

猜你喜欢

热点阅读