小米、百度、bigo 、滴滴 、快手等iOS 面试后的一次阶段性总结

这篇博客作者分享了在小米、百度、Bigo、滴滴和快手等公司进行iOS面试的经历,包括各轮面试的主要问题和答案,如设计原则、设计模式、Runloop、事件响应链、算法等。作者强调了面试准备的重要性,包括算法、基础、项目优化和架构等方面,并提供了一份详细的面试准备指南,涵盖了iOS开发的各个方面。此外,作者还讨论了面试中遇到的挑战,以及对组件化、项目架构和职业规划的看法。
摘要由CSDN通过智能技术生成

面试过程

在疫情期间都是远程面试,下边先介绍一下疫情期间面试的一些公司的面试情况。同时拿到了其中几家的 offer。下边介绍的面试题只还原了其中印象比较深的部分,会存在不足的情况,并不代表面试的全部。

小米

一面

  • 介绍有哪些设计原则,并让比较详细的说了其中开闭原则在项目中的应用。
  • 介绍设计模式,然后其中主要问了我抽象工厂和适配器两种模式。
  • 介绍 runloop 相关的知识和在实际开发中的使用情况
  • 要求详细的描述事件响应链

二面

  • 介绍过往的项目经验,因为曾经的项目和所面试的部门岗位需求匹配度较高,所以这块的时间占比较多。
  • 回文算法
  • (算法)判断一个字符串是不是对称的字符串,比如 abba 或者 aba 这样的就是对称的。
  • block 的实现原理
  • 比较详细的介绍 https 的过程。
  • 过往开发中做过哪些优化向的工作,问的也比较详细。
  • 如何检测项目中的卡顿问题(比如假死)
  • 比较详细的介绍消息转发流程和事件响应链
  • GCD 的底层线程调度原理
  • 介绍 hash 算法的原理

三面

  • 一个二叉树逐层打印的算法题
  • 介绍自己的过往的项目经验,会结合项目问一些架构向的思考
  • 如果现在做一个新的网络层框架,有哪些需要考量的点

百度

百度只有一面,因为面得是百度的商业化部门,对于细节的要求非常严格。个人感觉自己的表现确实不是很好。

  • 判断一个字符串是不是 ipv6 地址(要求尽全力的考虑所有异常的情况)

PS:当时面试官明确告诉我,这个面试题做不好,面试是直接结束的。

  • 介绍界面卡顿的优化有哪些可以优化的点。

  • 介绍 UIResponder 的继承链。然后说事件响应链。

Bigo

感觉面试的这些公司,Bigo 对于基础的考察最全面。

一面

  • (算法)找出一个页面中漏出部分面积最大的试图,重合的部分按照最上层的面积算漏出,会有时间复杂度的要求。
  • 简单地介绍的过往的项目经验
  • 控件的点击事件和添加在上边的手势谁先响应,并说明原因
  • 谈 CoreAnimation 和 CoreGraphic 的区别
  • 说 @synchronized 锁的实现原理,并说明其中可能存在的问题。同时介绍了 iOS 开发中常见的锁。
  • 介绍编译的过程和原理
  • 谈对于 bitcode 的理解和作用。
  • 详细的介绍了 Https 的过程。

二面

  • 介绍属性常用修饰符,介绍 assign 和 weak 之间的区别。这块会延伸到内存管理相关,比如引用计数的方式。
  • 聊对于 GCD 的理解,和 GCD 底层是如何进行线程调度的。聊 GCD 中常见方法的使用 (group ,信号量
    ,barrier 等)
  • 详细的介绍了 KVC 和 KVO 的原理。
  • 介绍消息转发过程
  • 介绍对于 Runloop 并介绍知道的应用场景。再具体场景中会有追问。
  • 介绍项目优化的经验,这一块会聊的比较细。
  • 介绍对于静态库和动态库的理解。
  • 在 webview 使用过程中存在的问题和解决方案。

三面

  • 介绍了过往 RN 的使用经验和对于 Flutter 的理解。
  • 谈对于组件化的理解和市面上常见的组件化方案
  • 问了一些 APM 向上的问题。
  • 谈个人对于项目架构选择的理解。自己如何进行架构的选择(主要对于 MVVM,MVC等,后文有个人对于这一块的理解)
  • 谈个人规划

滴滴

一面

滴滴的一面分为两部分。

  • 第一部分:过往项目经验,会对自己的过往项目经验,结合自己的描述,面试官问你介绍到的项目中涉及到问题,然后会据此引申出一些问题,这一部分占比比较大。
  • 第二部分是基础知识面
  • 谈属性修饰符,如果 ass
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值