rogerAce对《深入理解Android》的笔记(2)
-
第103页 第5章 深入理解常见类
关于RefBase,sp,wp: 1.RefBase中有一个隐含的影子对象,该对象随着RedfBase的构造函数被创建在堆中,该影子对象内部有强弱引用计数。 2.sp化后,强弱引用计数各增加1,sp析构后,强弱引用计数各减1。 3.wp化后,弱引用计数增加1,wp析构后,弱引用计数减1。 关于析构时机: 1.强引用为0将导致实际对象和影子对象被delete 2.弱引用为0将导致影子对象被delete
-
第108页 深入理解常见类
1.flag为0,强引用为0释放实际对象,弱引用为0释放影子对象。在使用wp的时候,尽量先wp,在使用它的promote,去以弱生强,可以避免segment falut。 2.flag为LIFETIME_WEAK,那么当强引用为0的时候,不会去释放实际对象。而弱引用计数为0的时候,实际对象和影子对象会同时被释放。 3.flag为LIFETIME_FOREVER,该对象长生不死,摆脱了强弱引用技术的控制,它需要开发者自己控制了。