记一次面试

作者: Liuzjdev | 来源:发表于2018-07-27 12:11 被阅读18次

内存泄漏和内存溢出

概念

  • 内存泄漏:垃圾回收器无法回收原本应该被回收的对象,这个对象就引发了内存泄露。
  • 内存溢出:过多的内存泄露最终会导致内存溢出(OOM)

如何避免内存泄漏的情况

  • 无用连接及时关闭,Cursor,InputStream..
  • static对象的生命周期过长,应该谨慎使用
  • 在处理一些占用内存大而且声明周期较长的对象时候,可以尽量应用软引用和弱引用技术。
  • 不要使用String进行字符串拼接,使用StringBuffer或者StringBuilder代替String,可以在一定程度上避免OOM和内存抖动。
  • 不要使用Enum
  • ...

Handler会不会造成内存泄漏

Handler 的使用造成的内存泄漏问题应该说是最为常见了,很多时候我们为了避免 ANR 而不在主线程进行耗时操作,在处理网络任务或者封装一些请求回调等api都借助Handler来处理,但 Handler 不是万能的,对于 Handler 的使用代码编写一不规范即有可能造成内存泄漏。另外,我们知道 Handler、Message 和 MessageQueue 都是相互关联在一起的,万一 Handler 发送的 Message 尚未被处理,则该 Message 及发送它的 Handler 对象将被线程 MessageQueue 一直持有。

由于 Handler 属于 TLS(Thread Local Storage) 变量, 生命周期和 Activity 是不一致的。因此这种实现方式一般很难保证跟 View 或者 Activity 的生命周期保持一致,故很容易导致无法正确释放。

事件分发

图解 Android 事件分发机制

图片三级缓存

  • 网络加载,不优先加载,速度慢,浪费流量
  • 本地缓存,次优先加载,速度快
  • 内存缓存,优先加载,速度最快

如果内存不足,是怎样去清理图片呢 我当时就知道个LRUCache,这块后续更新,自己还没细看过

适配

一张200*200的图片,第一次放在hdpi 第二次放在xdpi 第三次放在xxxdpi ,跑在小米6手机上,三种效果是怎样的?为什么会这样

ListView

  • 怎么实现类似qq分组效果,我当时说根据不同的ViewType加载不同的布局。
  • 如果用ListView嵌套ListView实现,公用一个adapter,怎么区分点击的是组的Item还是里面的子Item,这个当时没想出来,知道的麻烦告诉下,谢谢啦

约束布局

  • 有没有用过约束布局?
  • 好在哪?

相关文章

  • 记一次 Google 面试经历

    记一次 Google 面试经历 记一次 Google 面试经历

  • 2018-08-05

    记第一次面试家教,失败。

  • NLP 面试题(二)和答案,附有参考URL

    面试题目:记第一次NLP面试 链接:https://zhuanlan.zhihu.com/p/83080115 注...

  • 面试题

    Java面试题集 - 简书 Java内部类详解 - 海 子 - 博客园 记一次 Android 面试 - 简书 A...

  • 记一次面试

    今天的考试也许就真的是厉害了,理论+英语+操作+计算机,本来上午都没期待自己笔试能过的,没想到阴差阳错竟然进了前3...

  • 记一次面试

    内存泄漏和内存溢出 概念 内存泄漏:垃圾回收器无法回收原本应该被回收的对象,这个对象就引发了内存泄露。 内存溢出:...

  • 记一次面试

    谢谢同学费尽心思帮我找熟人帮忙,也谢谢在百度工作的姐姐不厌其烦的帮助我,今天下午二点我接到了内容生态质量部php实...

  • 记一次面试

    两周前的一次面试,出师不利,对方很是在意我的互联网认知和产品方法论,我一时说出来的全都对不上对方的胃口。回头细想原...

  • 记一次面试

    今天,面试一位大四的小伙子,心中有点感慨。 由于公司需要,最近一直在面试,全职的有,实习的也有;本科还未毕业的95...

  • 记一次面试

    目前我已经工作两年了,想专门从事前端开发工作,结果离职出来,前端已经发生翻天覆地的变化了,不知自己从何选择,早上面...

网友评论

    本文标题:记一次面试

    本文链接:https://www.haomeiwen.com/subject/ylwwmftx.html