关于Android面试中如何应对内存优化

来源:互联网 发布:淘宝自动回复设置技巧 编辑:程序博客网 时间:2024/06/06 03:22

本文转载自:http://blog.csdn.net/lighthouse666/article/details/70230614

很多Android的小伙伴们在面试中都会被面试官问到如何处理内存优化,那么应该如何答复面试官呢,本文就来讲讲如何来介绍Android中遇到的内存优化,让你轻松笑对面试。
大家先看下面的我总结的思维导图:
这里写图片描述

从上面的思维导图我们可以大致的了解内存优化所包含的大致内容,朋友们,面试中的语言要简单、扼要、分清楚主次矛盾,要引导面试官的思维,把他的思维带到你的知识鸿沟里。那么如何作答呢?其实答案就是按照我们的思维导图来介绍,内存优化分为:【一个本质和三个知识点】
本质:对象的引用未被释放,导致对象本身无法被有效的回收。
三个知识点:内存泄漏、内存溢出、内存优化工具。

这个时候面试官就被你带沟里了,他就会让你逐个介绍这三个知识点了。
【内存泄漏】
1.单例模式引发的内存泄漏:
原因:单例模式里的静态实例持有对象的引用,导致对象无法被回收,常见为持有Activity的引用
优化:改为持有Application的引用,或者不持有使用的时候传递。

2.集合操作不当引发的内存泄漏:
原因:集合只增不减
优化:有对应的删除或卸载操作

3.线程的操作不当引发的内存泄漏:
原因:线程持有对象的引用在后台执行,与对象的生命周期不一致
优化:静态实例+弱引用(Weakrefrence)方式,使其生命周期一致

4.匿名内部类/非静态内部类操作不当引发的内存泄漏:
原因:内部类持有对象引用,导致无法释放,比如各种回调
优化:保持生命周期一致,改为静态实例+对象的弱引用方式(WeakReference)

5.常用的资源未关闭回收引发的内存泄漏:
原因:BraodcastReceiver,File,Cursor,IO流,Bitmap等资源使用未关闭
优化:使用后有对应的关闭和卸载机制

6.Handler使用不当造成的内存泄漏:
原因:Handler持有Activity的引用,其发送的Message中持有Handler的引用,当队列处理Message的时间过长会导致Handler无法被回收
优化:静态实例+弱引用(Weakrefrence)方式
销毁对象时候清空队列里的Message

内存溢出:
原因:
1.内存泄漏长时间的积累
2.业务操作使用超大内存
优化:
1.调整图像大小后再放入内存、及时回收
2.不要过多的创建静态变量

内存优化工具:
Square:LeakCanary、MAT等

小伙伴们注意了,在面试的时候千万不能按照上面的逐条背,否则你会被认为为是毕业生的水准,要用一种比较随意、脱口而出的语态来介绍。
例如以下的表达方式:关于内存泄漏,一般像单例模式的使用不当啊、集合的操作不当啊、资源的缺乏有效的回收机制啊、Handler、线程的使用不当等等都有可能引发内存泄漏。
这时,面试官就会抽查里面他所感兴趣的知识点,当然,既然你懂,你就牵着他走了,你把原因和解决方案都给他说一下,直击其内心,通过一两个问题,你已经在他内心深处建立了良好的形象,自然接下来他就不会刻意刁难你了。

当然,这里只是为了应付与面试官的沟通提供一种思路,至于详细的知识点需要各位同学对思维导图里的知识点查阅专家博客等相关资料逐个击破,只有做到心中有剑,才能做到斩杀面试官于无形。
接下来作者会把知识点逐个展开,用代码解释:是什么、为什么、怎么样。欢迎大家持续关注~

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子突然说话结巴口吃了怎么办啊 很久不说话了不敢说话了怎么办 宝宝2岁了还不会说话怎么办 2岁的宝宝还不会说话怎么办 小宝宝有四个月了母乳不够吃怎么办 一个月的宝宝吐奶厉害怎么办 新生儿吐奶吐一次吐的特别多怎么办 把孩子打了一次现在说话结巴怎么办 宝宝五岁了口吃越来越严重了怎么办 幼儿把自己的舌头扣破皮了怎么办 6岁宝贝烧到39度怎么办 2岁半的宝宝说话结巴怎么办 2周3宝宝不会说话胆小怎么办 宝宝我2岁多了说话有点结巴怎么办 两岁宝宝说话突然结巴了怎么办 两岁3宝宝叫她名字不理人怎么办 九个月的宝宝身高不达标怎么办 3岁宝宝又吐又拉怎么办 宝宝发烧39度怎么办手脚很烫 两岁宝宝吃什么吐什么怎么办 7岁宝宝吃多了吐怎么办 7个月的宝宝大便干燥怎么办 10个月宝宝便秘大便干燥怎么办 一岁半宝宝老是拉糊糊状大便怎么办 外阴部长了一个疙瘩有点痒怎么办 小孩打架被另一个小孩家人告怎么办 德保豆浆机有电但不工作怎么办 刚买的笔记本c盘不足怎么办 qq糖粘在喉咙气管里怎么办 穿上旗袍后感觉后腰处不平整怎么办 机打票给客人给错联怎么办?急 ps修证件照感觉不太立体怎么办 手机百度上下载的文档打不开怎么办 5岁宝宝乘飞机没带证件怎么办 网上订飞机票忘记订儿童票了怎么办 两岁宝宝对牛奶鸡蛋过敏了怎么办 两岁宝宝坐不住好跑怎么办 宝宝两岁多了不愿意坐小马桶怎么办 坐火车小孩拉屎在被子上怎么办 川航飞机票名字错了一个字怎么办 胜战本领怎么看走向战场怎么办