送一个内存泄漏给 2016 的记几
原文链接:送一个内存泄漏给2016的记几
背景
年底了,看公司项目的友盟的bug列表,发现java.lang.OutOfMemoryError的问题不少,也该是时候还了。
问题描述
在解决内存泄漏的过程中,遇到一个静态变量导致的内存泄漏,关键是这代码还是自己敲的,明明已经使用弱引用,为什么还是内存泄漏了。看代码:
public class RtHttp {public static RtHttp instance = new RtHttp();public Context context;public static void with(Context context){WeakReference<Context> wrContext = new WeakReference<Context>(context);instance.context = wrContext.get();}
}复制代码
RtHttp为封装客户端网络框架请求的入口,假设两个条件:
- 其中传入的Context对象只能是Activity,不能使用context.getApplicationContext()(因为此RtHttp还封装了显示网络加载对话框的代码)。
- 不能在Activity onDestroy()方法中调用RtHttp.instance.context = null;
已经使用了弱引用,为什么还是内存泄漏呢?
记几想不通,还到谷歌搜索使用弱引用依然内存泄漏,WeakReference useless,无果。
如果你已经看出问题了,请直接到评论吐槽。
如果你没看出问题,请把引用的文章看一遍。
总结
一个内存泄漏的问题,反映了Java基础不牢固,在学习知识和解决问题上也不够深入。一直想写一篇2016的总结,希望以此内存泄漏的问题为界,实现在2017的一个技术提升。
引用
Android 内存泄漏总结
Java内存、Android 内存泄漏
Java gc(垃圾回收机制)小结,以及Android优化建议
JVM GC垃圾回收机制
转载于:https://juejin.im/post/585d215a61ff4b006890183f
送一个内存泄漏给 2016 的记几相关推荐
- 面试必问:用 Java 写一个内存泄漏程序
编译:ImportNew/唐尤华 原文链接:stackoverflow.com/questions/6470651/creating-a-memory-leak-with-java 问题: 刚参加的一 ...
- Freeswitch的一个内存泄漏分析
发现问题 在平常开发过程中,要做一个细心的人,不轻易放过任何一个问题. 这次发现Freeswitch的内存泄漏,是因为经常有关注测试环境的Freeswitch内存占用. 发现在测试环境升级的第二天Fr ...
- python 内存泄漏分析工具_记一次调试python内存泄露的问题
这两天由于公司需要, 自己编写了一个用于接收dicom文件(医学图像文件)的server. 经过各种coding-debuging-coding-debuging之后, 终于上线了, 上线后心里美滋滋 ...
- js日期比较大小_node.js 内存泄漏的秘密
每日前端夜话第276篇 翻译:疯狂的技术宅 作者:Giovanny Gongora 来源:nodesource 正文共:3955 字 预计阅读时间:10分钟 一直以来,跟踪 Node.js 的内存泄漏 ...
- javascript内存泄漏调试工具mac_node.js 内存泄漏的秘密
一直以来,跟踪 Node.js 的内存泄漏是一个反复出现的话题,人们始终希望对其复杂性和原因了解更多. 并非所有的内存泄漏都显而易见.但是,一旦我们确定了其模式,就必须在内存使用率,内存中保存的对象和 ...
- ThreadLocal究竟存不存在内存泄漏?
写ThreadLocal原理的文章太多了,笔者这里不想再分析源码,也不想剖析其实现原理,其实也并不难,就直接说下ThreadLocal的原理吧. 1.ThreadLocal原理简介 假设定义了两个Th ...
- 内存泄漏分析 mat 使用 activity泄漏
https://github.com/square/leakcanarysquare 公司出品mat 下载地址: http://pan.baidu.com/s/1kVPoIxx 两天,一个内存泄漏 a ...
- VC使用CRT调试功能检测内存泄漏(转载)
/*********************************************************************************** 检测内存泄漏的基本工具是调试器 ...
- vs2008 使用Visual Leak Detector检测内存泄漏
http://hi.baidu.com/maydaygmail/item/8ea6ebef87ca9103560f1dfe 转自:http://hi.baidu.com/sunchongjing/bl ...
最新文章
- c程序设计语言第五单元,(C语言程序设计基础课件)第五单元循环结构程序设计.pptx...
- 编程之美2.8 找符合条件的整数
- 如何使用.NET配置文件(二)
- 80后的网上创业生涯:想得到做得到
- 在Linux(ubuntu server)上面安装NodeJS的正确方法
- ueditor1_4_3_3编辑器的应用
- android点滴27:R文件无法加载 R cannot be resolved to a v...
- panda提取时间戳中的日期_Pandas处理时间序列数据的20个关键知识点
- spring学习笔记(六)
- python 文件上传 web_Python WebDriver 文件上传(一)
- 安装apk出现Parse error when parsing manifest. Discontinuing installation.解决方案
- (原)SCOR模型在化工行业的应用
- HCIA—冲突域与广播域(详解 + 区别)
- form表单reset重置按钮
- android 多个 前台 挂机,安卓手机如何进行多开挂机?
- 中国紧急警报系统(EAS)行业发展现状与前景动态预测报告2022-2027
- 程序员实习期馒头加酸菜,转正后月薪10K起步:走路都带风!
- python编写opencv-OpenCV官方教程中文版(for Python)pdf+自己编写的全套目录
- 如何使用docker和docker-compose在本地Testnet上开发EOS区块链
- Android 在Canvas中实现画笔效果(一)--钢笔
热门文章
- 快速排序算法_经常用到的的排序(快速排序和归并排序)简单的计算机算法学习...
- Windows 10 设定静态路由
- 微信java 签名验证_JAVA版微信小程序用户数据的签名验证和加解密
- 技术分析在于少而精,多则惑
- 日本研发投篮机器人,隔着半个球场都能百发百中,虐翻人类职业球员
- 腾讯无人车开进硅谷!建团队、招人才,国内放出商务岗位
- 特斯拉股东要用“独立董事长”换掉马斯克,不过最终失败了
- 小鹏汽车又有高管加盟,这次是前一汽技术研发院副院长刘明辉
- 加州将放宽无人车路测标准:没方向盘也行,没人类驾驶员也行
- C++算法之数据查找的代码