iOS 面经涂鸦、网易、哈啰、阿里好几个BU等等。最后也是顺利拿到了offer

链接:https://www.jianshu.com/p/03d9f928b472

从2020年七月份开始面试,陆续接触了 涂鸦、网易、哈啰、阿里好几个BU等等。最后也是顺利拿到了offer。

面经要的朋友太多..被迫把这份经历写下来,如果能帮到同样是打工人的你,是我的荣幸。

ps: 因为时间太长了,而且我现场没有笔记,我只能把我印象比较深的问题做一个记录,然后很多重复的问题我就略过了。

涂鸦:

  • 深浅copy的概念和在各个类中的用法和区别(NSString ,NSArray,NSMutableArray)。

  • 如何判断一张图片在URL没改变的情况,图片资源发生了改变,说出方案。

  • 平时在开发过程中A/B Test的使用与方案落地。

  • fastlane自带的aciton够用吗,有没有自定义过action(好像是这个,反正我只用过自带的功能T_T,在讲到自动化构建的时候问到,他们的构建系统看起来很复杂,有兴趣可以看看)。

  • 说说蓝牙进行交互的过程。

  • 印度2G,3G网络偏多,如何保证每次打开App,能够快速地建立请求并加载响应页面以及图片资源。(这种可以从多个方面作答:流量Protocol Buffer、DNS、缓存、网络协议,图片格式webp等等)。

  • http2.0和http1.1的区别,再说说http3.0。 (他们好像有在商用3.0...有可能记错...)。

网易:

*主Mach-0如何知道加载哪些动态库,说说App的启动流程。

  • 聊一下自动释放池。

  • msgsend的流程,msgsend在寄存器中的运行过程

  • https的流程,Charles为什么可以抓https的包。

  • 如何防止DNS污染/欺骗。

  • ip直连中使用https会遇到什么问题,如何解决。

  • 说说无痕埋点的方案和埋点过程中获取上下文属性的方案。

  • 看看你的contribution记录和文件作者.(黑人脸问号...他好像不相信我一个人维护整个项目...)

阿里BU.1:

  • 动态库和静态库的区别,开发者用到的动态库和系统动态库的区别。

  • NSTImer准吗,不准用什么替代方案,GCD作为定时器真的准吗?

  • NStimer在本次因卡顿之后延迟执行,那么他的下一次执行是在本次loop,还是下一次loop(好像是这么问的,反正当时回答得云里雾里,关键看你runloop的掌握程度)。

  • 商品cell停留的曝光时间埋点怎么统计,说说设计方案。

  • llvm相关的概念与代码质量检测方案。

  • GCD的block怎么取消执行,有什么坑。

  • autoreleasepool的实现方案。

  • 二叉树层序遍历。

  • 如何判断链表有环。

  • weak的实现原理。

阿里BU.2:

  • GCD和NSOperation的区别,分别的优缺点,为什么官方不推荐使用NSOperation (??这一点我存疑,暂时没看到过,当时也反驳了。

  • msgSend的经历了哪几个过程,快速转发和慢速转发有什么区别。

  • Mach-O 体积优化的方案。

  • RunLoop的几种模式,说说各种模式的区别和应用场景。

  • 说说WebView页面打开速度的优化方案。

  • 说说你目前网络的优化方案。

  • 支付宝离线支付的交互流程。

  • OAuth授权机制的交互流程。

  • React-Native是如何进行线程管理的。

  • PNG,JPG 图片格式是如何进行压缩的,让你设计一个压缩算法,讲讲大致的思路。

  • YYCache的实现流程。

  • 讲讲优化过的isa指针和没优化过得区别。

  • 如何判断一个Tagged Pointer指针。

哈啰:

  • vc有个strong的NSString对象,对该对象赋值之后,引用关系和引用计数的情况.

  • 说说OSSpinLock的实现原理与存在的问题,官方推荐了哪种锁进行替换。

  • 说说dyld的rebase,rebind做了啥。

  • https的流程和证书设置,怎么设置,在哪里设置。证书里面验证点什么。

  • WKWebview的网络抓包。

  • 卡顿监控一般怎么做,怎么防止卡顿的误报。

  • 应用内h5的白屏监控。

  • 做一个WebView容器,说说从哪些方面考虑(结合离线加载,预加载,白屏监控等等..)。

  • 如何防止DNS污染/欺骗。

  • 基于路由的组件化方案有什么值得注意的地方。

  • App启动优化的方案和ios13启动优化点(当时不确定,特意去看了下WWDC)。

  • 说说你项目目前的架构设计。

稍微有点乱,有些太基础的题真的没印象了...感觉还有好多没记起来..回头记起来再接着补...

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:[891 488 181],不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

申请即送:

  • BAT大厂面试题、独家面试工具包,

  • 资料免费领取,包括 数据结构、底层进阶、图形视觉、音视频、架构设计、逆向安防、RxSwift、flutter,

文章到这里就结束了,你也可以私信我及时获取最新资料以及面试相关资料。如果你有什么意见和建议欢迎给我留言。

结语:

我觉得面试技巧确实是需要锻炼的,回顾最后几次的面试,自己真的有一种“突破”的感觉,这种状态很像咒术回战的里的领域展开(敌人在你的领域内逃不走,且你的技能能百分百hit到敌人)。

希望新的一年大家都能面上心仪的公司。

文章到这里就结束了,你也可以私信我及时获取最新资料以及面试相关资料。如果你有什么意见和建议欢迎给我留言。

你可能感兴趣的:(iOS 面经涂鸦、网易、哈啰、阿里好几个BU等等。最后也是顺利拿到了offer)