快手android开发实习生面经(已拿offer)
先说下笔试情况,2.8/4。
面试的话是下午2点到4点面试连着两面,然后hr最后说结果会在几天之内反馈。
这个面经不全,因为现在有的问题已经想不起来了,尤其是没答好的问题可能更记不住了hhhhh
更新下:4.11面试,4.13拿offer
一面(一小时)
Android问题:
1.详细的讲下View的绘制过程
2.使用过哪些动画,属性动画和View动画的区别在哪里,View动画的原理(ValueAnimator和ObjectAnimator的区别)
3.Activity的生命周期,启动模式,区别在哪,讲下各自的应用场景。
4.Fragment的生命周期
5.Service的生命周期
6.进程与线程的区别
7.在项目中使用过多线程么
Java问题:
1.HashMap(因为我写过相关文章,这个问题答了蛮长的一段时间)
2.java gc算法
3.常用的线程池,以及线程池的各个属性的含义
4.四种引用类型的区别(可以结合内存泄漏去聊)
代码题
1.手写二分查找
二面(一小时)
Android问题:
1.事件分发详细的讲(三个核心函数以及整体过程),详细的讲下dispatchTouchEvent,子View如何阻止父View拦截事件,Action_Cancel什么时候会发生,一个应用场景:两个并排Button,点击button之后,又移动到另一个button,但不点击滑动到外面会经过发生哪些事件。
2.OkHttp
3. Message.obtain()有什么好处,为什么不使用new Message(防止多次Gc)
4.LinearLayout和RelativeLayout的区别,优缺点,层级嵌套等等等
5.ConstrantLayout讲讲特点
6.性能优化在项目中做过哪些
7.读过哪些Android的源码
8.BroadCastReceiver的源码看过么?
9.FrameLayout了解么?
代码题:
1.场景题,实现一个ActionMangager,其中包括registerAction(String action, IActionCallback callback),unregisterAction(IActionCallback callback);notifyChange(string action)三个方法。类似于BroadCastReceiver,一个action可能对应多个Callback,notifyChange中要回调action对应的所有Callback对象的方法。同时还问了怎么满足线程安全的问题等等,会根据代码继续问问题。
2.之字形遍历二叉树
#实习##面经##快手##安卓工程师#