|
| 1 | +# 25小米百度bigo 滴滴 快手等iOS 面试题2020年上 |
| 2 | + |
| 3 | +> https://xiaozhuanlan.com/topic/7628534019 |
| 4 | +
|
| 5 | +> 仅整理面试题部分 |
| 6 | +
|
| 7 | +#### 面试过程 |
| 8 | +- 在疫情期间都是远程面试,下边先介绍一下疫情期间面试的一些公司的面试情况。同时拿到了其中几家的 offer。下边介绍的面试题只还原了其中印象比较深的部分,会存在不足的情况,并不代表面试的全部。 |
| 9 | + |
| 10 | +## 小米 |
| 11 | +### 一面 |
| 12 | +* 介绍有哪些设计原则,并让比较详细的说了其中开闭原则在项目中的应用。 |
| 13 | +* 介绍设计模式,然后其中主要问了我抽象工厂和适配器两种模式。 |
| 14 | +* 介绍 runloop 相关的知识和在实际开发中的使用情况 |
| 15 | +* 要求详细的描述事件响应链 |
| 16 | +### 二面 |
| 17 | +* 介绍过往的项目经验,因为曾经的项目和所面试的部门岗位需求匹配度较高,所以这块的时间占比较多。 |
| 18 | +* 回文算法 |
| 19 | +* (算法)判断一个字符串是不是对称的字符串,比如 abba 或者 aba 这样的就是对称的。 |
| 20 | +* block 的实现原理 |
| 21 | +* 比较详细的介绍 https 的过程。 |
| 22 | +* 过往开发中做过哪些优化向的工作,问的也比较详细。 |
| 23 | +* 如何检测项目中的卡顿问题(比如假死) |
| 24 | +* 比较详细的介绍消息转发流程和事件响应链 |
| 25 | +* GCD 的底层线程调度原理 |
| 26 | +* 介绍 hash 算法的原理 |
| 27 | +### 三面 |
| 28 | +* 一个二叉树逐层打印的算法题 |
| 29 | +* 介绍自己的过往的项目经验,会结合项目问一些架构向的思考 |
| 30 | +* 如果现在做一个新的网络层框架,有哪些需要考量的点 |
| 31 | +* 百度 |
| 32 | +* 百度只有一面,因为面得是百度的商业化部门,对于细节的要求非常严格。个人感觉自己的表现确实不是很好。 |
| 33 | +* |
| 34 | +* 判断一个字符串是不是 ipv6 地址(要求尽全力的考虑所有异常的情况) |
| 35 | +* PS:当时面试官明确告诉我,这个面试题做不好,面试是直接结束的。 |
| 36 | +* |
| 37 | +* 介绍界面卡顿的优化有哪些可以优化的点。 |
| 38 | +* 介绍 UIResponder 的继承链。然后说事件响应链。 |
| 39 | + |
| 40 | +## Bigo |
| 41 | +> 感觉面试的这些公司,Bigo 对于基础的考察最全面。 |
| 42 | +
|
| 43 | +### 一面 |
| 44 | +* (算法)找出一个页面中漏出部分面积最大的试图,重合的部分按照最上层的面积算漏出,会有时间复杂度的要求。 |
| 45 | +* 简单地介绍的过往的项目经验 |
| 46 | +* 控件的点击事件和添加在上边的手势谁先响应,并说明原因 |
| 47 | +* 谈 CoreAnimation 和 CoreGraphic 的区别 |
| 48 | +* 说 @synchronized 锁的实现原理,并说明其中可能存在的问题。同时介绍了 iOS 开发中常见的锁。 |
| 49 | +* 介绍编译的过程和原理 |
| 50 | +* 谈对于 bitcode 的理解和作用。 |
| 51 | +* 详细的介绍了 Https 的过程。 |
| 52 | +### 二面 |
| 53 | +* 介绍属性常用修饰符,介绍 assign 和 weak 之间的区别。这块会延伸到内存管理相关,比如引用计数的方式。 |
| 54 | +* 聊对于 GCD 的理解,和 GCD 底层是如何进行线程调度的。聊 GCD 中常见方法的使用 (group ,信号量 |
| 55 | +* ,barrier 等) |
| 56 | +* 详细的介绍了 KVC 和 KVO 的原理。 |
| 57 | +* 介绍消息转发过程 |
| 58 | +* 介绍对于 Runloop 并介绍知道的应用场景。再具体场景中会有追问。 |
| 59 | +* 介绍项目优化的经验,这一块会聊的比较细。 |
| 60 | +* 介绍对于静态库和动态库的理解。 |
| 61 | +* 在 webview 使用过程中存在的问题和解决方案。 |
| 62 | +### 三面 |
| 63 | +* 介绍了过往 RN 的使用经验和对于 Flutter 的理解。 |
| 64 | +* 谈对于组件化的理解和市面上常见的组件化方案 |
| 65 | +* 问了一些 APM 向上的问题。 |
| 66 | +* 谈个人对于项目架构选择的理解。自己如何进行架构的选择(主要对于 MVVM,MVC等,后文有个人对于这一块的理解) |
| 67 | +* 谈个人规划 |
| 68 | + |
| 69 | +## 滴滴 |
| 70 | + |
| 71 | +### 一面 |
| 72 | + |
| 73 | +> 滴滴的一面分为两部分。 |
| 74 | +
|
| 75 | +* 第一部分:过往项目经验,会对自己的过往项目经验,结合自己的描述,面试官问你介绍到的项目中涉及到问题,然后会据此引申出一些问题,这一部分占比比较大。 |
| 76 | +* 第二部分是基础知识面 |
| 77 | +* 谈属性修饰符,如果 assign 修饰对象可能存在的问题和原因。 |
| 78 | +* 比较的深入的聊了内存管理的内容,包含引用计数和 weak 修饰的对象的内存管理的过程。问的会比较深入。 |
| 79 | +* 讲 runloop 的过往使用经验。 |
| 80 | +* 介绍自己比较熟悉的三方库的实现原理 |
| 81 | +## 二面 |
| 82 | +* 对于锁的理解(自旋锁和互斥锁),以及 iOS 开发中常见的锁。同时要求介绍个人在开发过程中在哪些场景下用到过锁。 |
| 83 | +* 在实际开发中遇到过哪些多线程问题以及如何进行解决的。 |
| 84 | +* 为什么不能在异步线程中更新页面,介绍原因。 |
| 85 | +* 对于内存泄漏的了解,以及介绍知道的解决方案。 |
| 86 | +* 一些优化向上的问题,主要是根据自己介绍的优化进行较为深入的追问。 |
| 87 | +* 一个坦克从一个空间的起点到终点,中间在某些位置上有阻隔的情况下,判断从起点到终点是否有可行路径的算法题。 |
| 88 | + |
| 89 | +### 三面 |
| 90 | + |
| 91 | +* 比较详细的介绍之前的项目经验和主要负责的内容 |
| 92 | +* 介绍过往项目中最有挑战的事情,并会据此深入的聊。 |
| 93 | +* 介绍了一些架构向的理解 |
| 94 | +* 谈个人规划 |
| 95 | + |
| 96 | +## 快手 |
| 97 | +> 快手的一面是跨部门面试,二面是本部门面,所以一二面面试题会有一些重复,只写了一次。 |
| 98 | +
|
| 99 | +### 一面 |
| 100 | +* 介绍过往的项目经验 |
| 101 | +* 两个不算难的算法题(具体的忘记了...) |
| 102 | +* 聊了 assign 修饰对象可能存在的问题 |
| 103 | +* 聊过往项目中的优化经验 |
| 104 | +* 介绍消息转发流程 |
| 105 | +### 二面 |
| 106 | +* 比较详细的聊到的 block,深入的讲了其中的实现原理,并介绍不同变量的引用方式。 |
| 107 | +* 介绍开发中常见的循环引用,并说明其中的原因和解决的方案和原理。 |
| 108 | +* 介绍 Runloop 并讲应用场景。 |
| 109 | +* 二叉树翻转 |
| 110 | +### 三面 |
| 111 | +* 一道多线程实际场景下的问题,要求远程写出实现方案的代码 |
| 112 | +* 聊对于 MVVM,MVC 和 MVP 的理解。 |
| 113 | +* 介绍过往项目中 RN 的使用经验和遇到的问题。 |
| 114 | +* 讲如何将一张内存极大的图片可以像地图一样的加载出来(只说实现思路) |
| 115 | +* 聊对于组件化的理解,对于市面上的组件化方案的理解,优劣分析等。 |
| 116 | + |
| 117 | + |
| 118 | +## 其他 |
| 119 | +* 除了上边介绍的公司外,还面了平安,51 talk,58 同城,好未来,美篇。 |
| 120 | +* 因为绝大部分面试内容和上边的基本上只是重复,只对差异性的面试题进行了总结。 |
| 121 | +* 对图像编解码的了解 |
| 122 | +* 在子线程中是如何进行内存管理的JSBridge 是如何实现的,以及和原生的调用关系。 |
| 123 | +* 问到了一些 AFNetworking 和 SDWebImage 相关的实际开发中的问题。 |
| 124 | + |
| 125 | +## 链接 |
| 126 | + |
| 127 | +- [面试题系列目录](../README.md) |
| 128 | +- **上一份**: [阿里iOS五轮面经2019年10月](24阿里iOS五轮面经2019年10月.md) |
| 129 | + |
0 commit comments