头条 Android 面经

个人情况

我在开学后内推了头条西瓜视频的 Android 开发实习生,经历了三轮技术面试和一轮 HR 面试。全部流程大约持续了一周,在 HR 面以后收到了口头 offer。

以下内容均按照面试顺序还原。可能有部分遗漏。

一面

  1. 自我介绍

  2. 算法:一个数组中子数组(连续)的最大和)

  3. java 抽象类和接口的区别

  4. 线程通信的方式

  5. 类加载

  6. HashMap 和 ConcurrentHashMap 的源代码实现

  7. View 事件分发流程,如果 ViewGroup 拦截(Intercept)了事件会怎么样?

  8. 如何移动一个 View 的位置?

  9. 属性动画和帧动画

  10. ViewStub 的作用,能不能 inflate 两次?

  11. 一个垂直布局的 LinearLayout 80dp 高,三个按钮高都是 30dp,实际显示效果?

  12. 同上,换成 RelativeLayout 实际显示效果?

  13. Volley 和 OKhttp 源码相关问题。问了缓存和两个库各自适用场景。

  14. 图像压缩的方法,jpeg 编码过程,jpg、png、bmp 的区别。

  15. 让我问他问题。

面试总时间:约 55 分钟。

二面

  1. 自我介绍

  2. LRU 缓存怎么实现,手写代码

  3. 使用缓存的过程中,除了 LRU 外有没有什么其他缓存策略来影响缓存的顺序?

  4. Activity 生命周期

  5. Handler 机制,问的很细。例如,一条线程里面两个 Handler,怎么确定 msg 发到哪里(msg.target)? handler 的 Post 一个 Runnable 和 sendMessage 有什么区别?

  6. 线程的 run 和 start,能不能直接调用某个线程的run方法?

  7. 断点续传

  8. TCP 三次握手、四次挥手

  9. 一道算法题。找出数组中出现次数超过一半的元素,假设一定存在。用哈希表、贪心、快排三种策略实现。

  10. 联创团队是个怎样的团队?

  11. 还有什么问他的问题吗?

面试总时间:约 50 分钟。

三面

  1. 自我介绍

  2. 三道算法题:无序数组去重、两个排序数组找中位数、快速选择

  3. 垃圾回收,强引用弱引用

  4. view绘制,实现扇形转盘布局,如何旋转内容

  5. 解决滑动冲突

  6. fragment 生命周期,各种情况

  7. jpeg编码。视频的帧内压缩和帧间压缩。I帧P帧B帧

  8. StartService 和 BindService

  9. binder

  10. 线程同步

  11. 闲聊

面试总时间:约 60 分钟。

HR 面

  1. 自我介绍

  2. 询问个人隐私:哪里人、父母职业、城镇/农村户口,诸如此类。

  3. 现在投了几家公司?已经拿了哪些offer?如果有多个offer选哪几家?为什么选头条?

  4. 联创团队(她比较感兴趣,谈了10分钟以上)。

  5. 确认实习时间。

  6. 选择考研还是工作?

  7. 让我问她问题,我确认了后续流程,得到答复,当前这是最后一面,下周发offer。

面试总时间:约 20 分钟。

你可能感兴趣的:(头条 Android 面经)