原文链接:送一个内存泄漏给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为封装客户端网络框架请求的入口,假设两个条件:

  1. 其中传入的Context对象只能是Activity,不能使用context.getApplicationContext()(因为此RtHttp还封装了显示网络加载对话框的代码)。
  2. 不能在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 的记几相关推荐

  1. 面试必问:用 Java 写一个内存泄漏程序

    编译:ImportNew/唐尤华 原文链接:stackoverflow.com/questions/6470651/creating-a-memory-leak-with-java 问题: 刚参加的一 ...

  2. Freeswitch的一个内存泄漏分析

    发现问题 在平常开发过程中,要做一个细心的人,不轻易放过任何一个问题. 这次发现Freeswitch的内存泄漏,是因为经常有关注测试环境的Freeswitch内存占用. 发现在测试环境升级的第二天Fr ...

  3. python 内存泄漏分析工具_记一次调试python内存泄露的问题

    这两天由于公司需要, 自己编写了一个用于接收dicom文件(医学图像文件)的server. 经过各种coding-debuging-coding-debuging之后, 终于上线了, 上线后心里美滋滋 ...

  4. js日期比较大小_node.js 内存泄漏的秘密

    每日前端夜话第276篇 翻译:疯狂的技术宅 作者:Giovanny Gongora 来源:nodesource 正文共:3955 字 预计阅读时间:10分钟 一直以来,跟踪 Node.js 的内存泄漏 ...

  5. javascript内存泄漏调试工具mac_node.js 内存泄漏的秘密

    一直以来,跟踪 Node.js 的内存泄漏是一个反复出现的话题,人们始终希望对其复杂性和原因了解更多. 并非所有的内存泄漏都显而易见.但是,一旦我们确定了其模式,就必须在内存使用率,内存中保存的对象和 ...

  6. ThreadLocal究竟存不存在内存泄漏?

    写ThreadLocal原理的文章太多了,笔者这里不想再分析源码,也不想剖析其实现原理,其实也并不难,就直接说下ThreadLocal的原理吧. 1.ThreadLocal原理简介 假设定义了两个Th ...

  7. 内存泄漏分析 mat 使用 activity泄漏

    https://github.com/square/leakcanarysquare 公司出品mat 下载地址: http://pan.baidu.com/s/1kVPoIxx 两天,一个内存泄漏 a ...

  8. VC使用CRT调试功能检测内存泄漏(转载)

    /*********************************************************************************** 检测内存泄漏的基本工具是调试器 ...

  9. vs2008 使用Visual Leak Detector检测内存泄漏

    http://hi.baidu.com/maydaygmail/item/8ea6ebef87ca9103560f1dfe 转自:http://hi.baidu.com/sunchongjing/bl ...

最新文章

  1. c程序设计语言第五单元,(C语言程序设计基础课件)第五单元循环结构程序设计.pptx...
  2. 编程之美2.8 找符合条件的整数
  3. 如何使用.NET配置文件(二)
  4. 80后的网上创业生涯:想得到做得到
  5. 在Linux(ubuntu server)上面安装NodeJS的正确方法
  6. ueditor1_4_3_3编辑器的应用
  7. android点滴27:R文件无法加载 R cannot be resolved to a v...
  8. panda提取时间戳中的日期_Pandas处理时间序列数据的20个关键知识点
  9. spring学习笔记(六)
  10. python 文件上传 web_Python WebDriver 文件上传(一)
  11. 安装apk出现Parse error when parsing manifest. Discontinuing installation.解决方案
  12. (原)SCOR模型在化工行业的应用
  13. HCIA—冲突域与广播域(详解 + 区别)
  14. form表单reset重置按钮
  15. android 多个 前台 挂机,安卓手机如何进行多开挂机?
  16. 中国紧急警报系统(EAS)行业发展现状与前景动态预测报告2022-2027
  17. 程序员实习期馒头加酸菜,转正后月薪10K起步:走路都带风!
  18. python编写opencv-OpenCV官方教程中文版(for Python)pdf+自己编写的全套目录
  19. 如何使用docker和docker-compose在本地Testnet上开发EOS区块链
  20. Android 在Canvas中实现画笔效果(一)--钢笔

热门文章

  1. 快速排序算法_经常用到的的排序(快速排序和归并排序)简单的计算机算法学习...
  2. Windows 10 设定静态路由
  3. 微信java 签名验证_JAVA版微信小程序用户数据的签名验证和加解密
  4. 技术分析在于少而精,多则惑
  5. 日本研发投篮机器人,隔着半个球场都能百发百中,虐翻人类职业球员
  6. 腾讯无人车开进硅谷!建团队、招人才,国内放出商务岗位
  7. 特斯拉股东要用“独立董事长”换掉马斯克,不过最终失败了
  8. 小鹏汽车又有高管加盟,这次是前一汽技术研发院副院长刘明辉
  9. 加州将放宽无人车路测标准:没方向盘也行,没人类驾驶员也行
  10. C++算法之数据查找的代码