社区
Android
帖子详情
什么时候用强指针 什么时候用弱指针
paulfuture
2012-09-17 02:09:05
什么时候用强指针 什么时候用弱指针
...全文
179
1
打赏
收藏
什么时候用强指针 什么时候用弱指针
什么时候用强指针 什么时候用弱指针
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dong3560
2012-09-17
打赏
举报
回复
无论何时都保证对象不被回收,即使OOM也不会,那就是强
只要GC发现了只有弱引用的对象都会把它回收,无论是否需要是否内存
Android系统的智能
指针
(轻量级
指针
、强
指针
和弱
指针
)的实现原理分析
Android系统的运行时库层代码是用C++来编写的,用C++来写代码最容易出错的地方就是
指针
了,一旦使用不当,轻则造成内存泄漏,重则造成系统崩溃。不过系统为我们提供了智能
指针
,避免出现上述问题,本文将系统地分析Android系统智能
指针
(轻量级
指针
、强
指针
和弱
指针
)的实现原理。 在使用C++来编写代码的过程中,
指针
使用不当造成内存泄漏一般就是因为new了一个对象并且使用完之后,忘记了delete这个对象,而造成系统崩溃一般就是因为一个地方delete了这个对象之后,其它地方还在继续使原来指向这个对象的
指针
。为了避免出现上述问题,一般的做法
weak,Strong
指针
小结
ARC的判断准则: 只要没有强
指针
指向对象,就会释放对象,弱
指针
不会这样,及时有弱
指针
指向对象,对象没有强
指针
指向,也会自动释放掉。一般,无需显式声明为强
指针
,但是在封装里,定义方法的时候需要写明。而弱
指针
,必须显式说明。默认是强
指针
。
强
指针
和弱
指针
1 强
指针
和弱
指针
1.1
指针
问题
指针
是c,c++语言中的一件大杀器,功能强大,但却很容易造成非常难以解决的bug。 我们经常遇到的
指针
问题有: 1. malloc的内存没有free,这样造成了内存泄露 2. 已经delete的
指针
还在使用,这种就是所谓“野
指针
”,即
指针
没有指向一个活着的对象。比如: class A{ public: i
Android14之智能
指针
的弱引用、强引用、弱
指针
、强
指针
用法区别及代码实例(二百零五)
本篇目的:Android源码中,理解智能
指针
的弱引用、强引用、弱
指针
、强
指针
的用法与区别。在 Android 的 C++ 开发中,弱引用、强引用、弱
指针
和强
指针
都是用于管理对象生命周期的工具。它们是在 Android Framework 中实现的智能
指针
,用于避免内存泄漏和悬空
指针
问题。强
指针
是指向对象的
指针
,它会增加对象的引用计数,从而延长对象的生命周期。当有一个或多个强
指针
指向某个对象时,该对象的引用计数会增加。只有当所有指向该对象的强
指针
都释放时,对象的引用计数才会减少,从而触发对象的销毁。
Android中强
指针
和弱
指针
智能
指针
技术 智能
指针
技术实质是:记录引用某一个对象的次数,一旦检测到次数为0,这时就自定将此对象所占内存释放。 解决问题: 1、
指针
初始化问题。(智能
指针
自动初始化) 2、new之后没有及时delete,内存泄漏。(当计数为0时,自动销毁) 3、野
指针
存在(当有对象仍在使用
指针
时,智能
指针
不会清零,仍然可以访问) 智能
指针
技术不能解决对象循环引用的问题:a引用b;b引用a,这样的情况下使用简单的智能
指针
技术无法解决,故引入强
指针
和弱
指针
; 强
指针
和弱
指针
强
指针
可以操作对象,弱
指针
不能够操作对象。 强
指针
Android
80,481
社区成员
91,373
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章