码迷,mamicode.com
首页 > 移动开发 > 详细

Android中强指针和弱指针

时间:2015-01-08 00:44:46      阅读:390      评论:0      收藏:0      [点我收藏+]

标签:

因为Android中很多地方代码是用C++编写,为了能够保证C++中指针能够被正确的释放,于是Android引入了其实在C++中已经有的智能指针技术;

智能指针技术的实质就是:记录引用某一个对象的次数,一旦检测到次数为0,这时就自定将此对象所占内存释放。

简单的的智能指针技术因为不能解决对象循环引用的问题:a引用b;b引用a,这样的情况下使用简单的智能指针技术无法解决,故引入强指针和弱指针;

其实完全可以把强弱指针看做c语言中的一个指向对象的地址(为了便于理解),不过区别在于强指针可以操作对象,弱指针不能够操作对象。但是要知道智能指针并不是真的指针,

他们都是一个对象;

Android中具体的实现细节,罗升阳的博客写的很清晰,可以自己找来看看。

下面只要说一个大致的感觉:

refBase 和 LightRefBase 类只是一个计数器类;真正实现的就是sp<T>和wp<T>,个人觉得完全可以不理会到底的原理,只要会用即可。

 

最近想到其实为什么深入理解计算机系统那本书中会把c语言中各个元素都在机器级分析一遍,现在我知道了,当你遇见高级的语言时,为了便于

理解其中错综复杂的关系,在机器语言层面了解可能更好理解并且也更深刻一下,难怪深入理解c++对象模型的重要性,它其实就是在讲述c++

在底层的实现方式,从而更加清晰的明白c++其中的概念,难怪有些人会看c++可执行程序的汇编实现一样的道理。

同时也理解对一个问题认识的深刻性的重大意义,同时提醒自己需要总结和联接更对自己之前明白的知识,只有将知识联系起来才能记得牢同时也能在需要用到的

时候很快的想起来。

Android中强指针和弱指针

标签:

原文地址:http://www.cnblogs.com/yxalag/p/4209710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!