文章目录
  1. 1. 一面
  2. 2. 二面
  3. 3. 三面
  4. 4. 四面
  5. 5. HR面

我投递的是iOS研发工程师,让vivi哥内推到了阿里巴巴集团简历库中,最后面试部门是支付宝安全部门。共经历了四次技术面。

一面

一面问的很广,涵盖了iOS开发的基础知识,也涉及到了内存管理(MRC&ARC)和多线程(GCD),还问到了FRP(RAC)和CocoaPods。也问了一些iOS开发的工具,比如测试用的Instruments、lldb调试命令等。CPU硬件和网络安全问了两个问题都答得不好,计算机网络问了个状态码。

算法方面问了如何查找链表中的环,我当时想到两种方法,但只说了一种。

总之一面涉及的知识面很广(这个广指的是iOS方向中的广,面试问的问题大都围绕iOS开发),但不会问的很深(因为往深了说的时候面试官会暗示下已经说的很明白了)。一面考察的是基础和熟练度。

二面

二面问的问题是更加深入底层实现。但并没有涉及到太多Runtime System的问题。多是围绕MRC和ARC原理,GCD原理和内存优化之类的深层次问题。这不仅要求会使用API,还要了解底层实现机理。

让我简单介绍了下常用的设计模式,我是结合iOS开发说的,比如用GCD的dispatch_once实现线程安全的单例模式。

数据结构方面问我都知道哪些树结构,我说了一些简单的树后提到了红黑树,于是被问到红黑树的实现,着色规则,悲剧。。。

信息安全方面问的问题我不太会,于是我便说了我会的知识点,比如对称加密和非对称加密,介绍下公钥密钥,数字签名,CA等。被问到RSA算法实现,可惜我早忘光了,过后一查发现很简单的。

总之二面的问题问的深一些,会随着我回答中内容的深入而继续问下去,因为是安全部门,所以问的信息安全知识多一些。

三面

不知道三面是不是传说中的交叉面,但问的问题更加深入,也更加偏向实际了。

先是问了下为什么对iOS感兴趣,然后就开始问技术问题了。

介绍下KVO,貌似也问了内存管理的问题(还包含防止内存泄露,降低使用峰值等)。让我介绍了下自己做的项目(貌似之前面试官没看到我上传的简历附件,才发现我有上架的App)

依然被问到了iOS安全问题,比如设备识别的问题。这部分我结合刚刚做的一点iOS逆向工程的经验说了下,从反编译和分析工具、网络抓包分析等说了下。

四面

四面差点出了点故障,因为我手机信号不好,有时打不通。还好耐心的支付宝员工发邮件告诉了我,还提到了面试我的人是技术总监,受宠若惊。

自我介绍后,面试官给我十分钟给一个不会iOS开发的人讲一下iOS开发,然后也问到了iOS中的内存管理和多线程。

HR面

暂时还没HR面,已经发offer和意向书了。。。

文章目录
  1. 1. 一面
  2. 2. 二面
  3. 3. 三面
  4. 4. 四面
  5. 5. HR面