只是抱着试一试的心态,没想到oc了,这次快手的面试体验感极佳,遗憾的是base在北京所以给拒绝了。下面贴上三面的面经。一面:PS:一面面经忘记做记录,大致会议一下,不是很全1.自我介绍2.挖项目3.Handler-Message机制4.okHttp线程池参数如何配置?为什么?5.okHttp连接复用6.View的事件分发相关7.HashMap原理8.HashMap线程安全吗?9.ConCurrentHashMap如何保证线程安全10.反转链表补充:11.jvm运行时数据区有哪些12.gc回收机制13.哪些对象可以是gc root二面:1.项目2.物品识别,物品检测框时延如何优化(把第一帧往后移)3.事件是怎么从硬件层传递到应用层4.DOWN事件有几个坐标点,MOVE事件呢?5.View的绘制流程: View绘制屏幕刷率,帧率控制?- 编舞者(Choreographer)6.为什么要有线程池?(稍微点原理,如何从线程复用的角度去答)7.发线程数量越多性能越好吗?(从线程切换频繁的角度去答)8.如何设计一个线程池?(结合原理讲)9.okhttp里面的线程池参数时怎么配置的?10.如果开一个for循环去不断给okhttp发请求,会奔溃吗?为什么?(okhttp分发机制就绪队列和等待队列)11.为什么okhttp为什么将线程池的队列前移?12.算法题100000个数字中,对前10000小的数字进行排序三面:1.大部分时间问的是业务2.收撕lru算法,要求查找的时间复杂度o(1)3.在一个迭代了很多个版本的App中,如何实现App换肤(这边我知道可以用Hook的方式去实现但具体的没有了解过,就给面试官要了点思考时间,然后联想到插件化的实现方式除了Hook以外可以用插桩,就现场想了个用插桩方式实现App换肤的思路)hr面略