OPPO Android开发技术面总结

       今天早上参加了深圳OPPO开发工程师的技术面试,总的来说面试过程不是很顺利。面试官并没有问一些很深奥的底层原理,基本都是一些Java基础以及Android四大组件内的基础,但是我自身在开发过程中并没有很重视这些理论基础,导致很多知识点都忘记了。整个面试过程耗时一小时,感谢两位面试官不厌其烦地给我提示,一方面让我能够回想起来那些遗忘的知识点,另一方面也缓解了尴尬的气氛。。。

   顺便一说,OPPO的保密工作还是做得比较严格的,进去后海卓越中心大楼前需要申请临时通行证才能进去。而在面试前还需要登记,并且把手机的前后摄像头都给用胶带封起来才能进行面试。废话少说,下面分成两部分汇总一下这次技术面试的知识点。   

Java

  1. 如何理解Java的多态?其中,重载和重写有什么区别?
  2. 谈一下JVM虚拟机内存分配?哪部分是线程公有的,哪部分是私有的?
  3. final关键字的用法?
  4. 死锁是怎么导致的?
  5. 数据库如何进行升级?SQLite增删改查的基础sql语句

Android

  1. Broadcast的分类?有序,无序?粘性,非粘性?本地广播?
  2. Touch事件是如何传递的?
  3. Handler的原理?
  4. ANR出现的情况有几种?怎么分析解决ANR问题?
  5. 内存泄露的场景有哪些?内存泄漏分析工具使用方法?
  6. 如何实现启动优化,有什么工具可以使用?
  7. 常用的设计模式有哪些?是否了解责任链模式?

总结

       现在回顾一下,问的问题并不难,只是环环相扣问出了很多细节相关的知识点。由此看来,在日常开发中还需要注重基础。尤其对于开发经验是1-5年内的Android Developer,面试官考察的多数是基础知识是否牢固,沟通表达能力,总结能力。虽然此次面试黄了,但不失为一次很好的经历。

     对于问题的答案,后面会抽时间整理总结,敬请期待。

2018-10-22更新:

关于问题的答案,已整理到个人的简书。如有需要可移步查阅。

    原文作者:SQL
    原文地址: https://juejin.im/post/5bc44725e51d450e7211033f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞