关闭

Android面向面试复习----内存泄漏

标签: 内存泄漏GC回收
341人阅读 评论(0) 收藏 举报
分类:

内存泄漏

1. java内存泄漏基础知识

1.1 java内存的分配策略

  1. 静态存储区(方法区-静态数据、全局变量)
  2. 栈区(局部变量,方法执行结束后,自动释放)–容量有限

    方法中定义的基本变量和对象的引用变量都是在栈区中分配的

  3. 堆区(new)–GC回收

    new出来的对象,数组

1.2 java是如何管理内存的

  1. 通过关键字new申请内存空间
  2. 对象的释放:GC
  3. 内存由开发人员分配,回收由GC自动完成。

GC回收原理:

GC Root Tracing 算法思路就是通过一系列的名为”GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连,即从GC Roots到这个对象不可达,则证明此对象是不可用的。

这里写图片描述

1.3 java中的内存泄漏

内存泄漏是指无用对象(不再使用的对象)持续占用内存或者无用对象的内存得不到及时释放,从而造成的内存空间的浪费。

2. Android内存泄漏

1. 单例

单例对象使静态的,所以,它的生命周期和app是一样的。如果它所持有的对象在需要被释放时,因为单例持有它的引用导致无法释放,导致内存泄漏。(比如单例构造中传入Activity上下文)

2. 内部类

匿名内部类持有了外部类的引用,在外部类需要释放时,由于内部类还存在,导致外部类无法被回收,导致内存泄漏。应该把内部类改为静态内部类,同时,需要用弱引用引用外部类中的对象等,来解决内部类导致的内存泄漏。

3. Handler

同上。

4. 避免使用static变量

使用懒加载替代static

5. 资源未关闭的内存泄漏

6. AsyncTask

同Handler。区别在于可以调用cancle方法释放。

7. bitmap的回收

8. listView的优化

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android 性能优化之内存泄漏的检测与修复

转载请注明本文出自 clevergump 的博客:http://blog.csdn.net/clevergump/article/details/52013873, 谢谢!在 Android 开发中,...
  • cleverGump
  • cleverGump
  • 2016-07-24 14:30
  • 3885

关于C/C++中的内存泄漏——程序员面试高频题

前几天面试多益网络的时候,面试官就问到了C/C++中的内存泄露问题。这也是很多公司面试时候的高频题,好吧,那就来学习下吧~ 到底什么是内存泄漏?是什么导致了内存泄漏?如何避免?又如何检测呢? ...
  • xiaoshuoladashou
  • xiaoshuoladashou
  • 2015-05-06 21:09
  • 1541

Android使用View.post()方法内存泄漏

最近开发中,使用 AsyncTask + ProgressDialog 显示进度信息,但在AsyncTask停止,Activity finish 后该Activity的实例始终不会被gc,多次运行程序...
  • huiguixian
  • huiguixian
  • 2013-08-07 16:50
  • 5238

android 面试中或者开发中会提到关于内存泄漏或者内存溢出的问题

内存泄漏   1 内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因不能被释放或者无法释放,造成系统内存的浪费,导致程序运行速度慢或者运行程序崩溃的现象:  a:在andr...
  • qq_25518991
  • qq_25518991
  • 2017-07-25 09:27
  • 103

Android应用程序如何避免内存泄漏

  • 2015-01-08 14:57
  • 71KB
  • 下载

有关android 內存泄漏的问题

  • 2012-11-24 14:12
  • 80KB
  • 下载

Android Volley 与AsyncTask 请求对比内存泄漏

  • 2015-10-05 22:01
  • 2.71MB
  • 下载

Android内存泄漏案例分析

  • 2015-08-31 09:47
  • 949KB
  • 下载

Android mvp简单模型搭建及其防内存泄漏解决办法

  • 2017-03-15 17:23
  • 6.68MB
  • 下载

Android内存泄漏简介

  • 2013-04-08 19:33
  • 752KB
  • 下载
    个人资料
    • 访问:48234次
    • 积分:971
    • 等级:
    • 排名:千里之外
    • 原创:48篇
    • 转载:5篇
    • 译文:0篇
    • 评论:16条
    博客专栏
    最新评论