美团面试

7月23日获得了一次去美团面试 iOS 开发工程师的机会。做个记录。


一面:

Block的底层原理,结构,内存以及需要注意的地方。
图片渲染,一张 png/jpg 格式的图片渲染到页面上显示有哪些流程。png和jpg的区别。png一定是无损的吗?
Runtime。
Runloop 的结构和循环流程,用Runloop做过什么事情。
多线程,NSOperationQueue 和 GCD 的区别。用多线程做过什么事情。线程安全的问题。加锁有几种方式。
NSURLSession 和 NSURLConnection 的区别,NSURLConnection 是怎么封装的。CFNetwork。
做过什么动画。
https 的工作原理,和 http 的区别。RSA 加密原理。
网络层级,TCP 和 UDP 的区别。
SDWebImage 的框架结构,缓存机制。
Git 的 rebase 的原理。Git 流程。
对组件化的了解,组件化是为了解决什么问题。
JSPatch的原理。
单例是为了处理什么问题而使用的,单例和全局变量的区别。
对设计模式的掌握。
分层打印二叉树。

新增一面被问到的问题,什么是meta class,实际中会用meta class做什么事情。


二面:

对一面的总结。
MVC 和 MVVM 的区别。
用 MVVM 实现一个业务。VC 是入口,VC1 显示 “省” 的列表,VC2 显示省关联的 “市” 的列表,VC3 显示市关联的 “县” 的列表。VC 到 VC1,VC1到 VC2,VC2 到 VC3,VC3 再跳转到 VC。相关点在于如何设计 ViewModel 和 Model ,以及 VC3 到 VC。
如何编写单元测试,比如写了一个网络库,如何测试该网络库,用例怎么写的更全面一些。
代码从 Git 上拉下来到生成 .ipa 都有哪些过程,期间都生成了什么文件。
最近读过哪些书,看过哪些框架,有什么收获。
谈到 JSPatch,问 JSPatch 是如何处理 Block 的。
自己擅长的地方。
遇到过什么样的挫折。

新增二面被问到的问题:如果没有instruments,该如何检测memory leak, zombie object 之类的问题。


三面:

先谈了下前两面的感受和问题,又和面试官聊到了单例和全局变量的区别。
Block和Protocol的区别,Block是为了解决什么问题而使用的。
iOS 的设计模式。iOS 为什么没有类似于 Java 和 C 之类的 “Builder” 的构造模式。
冒泡、插入、快速排序的平均时间复杂度和最坏时间复杂度。
堆排序。
有时间复杂度为 O(n) 的排序吗?
最近从 stackOverFlow 上解决过的问题,读过的开源框架,读过的书,业余兴趣,最有成就感的事情。


总结

从下午2点面到将近6点。三面的面试官告诉我他的领导出差了,回来之后还会有一轮面试,最终 Boss 面。下周会和我约时间。
面试官在提问的时候往往会根据问题发挥一下,比如从Runloop会追溯到AutoReleasePool的释放时机等,分层打印算法题我用递归做完之后面试官追问不用递归怎么做等等。


结局

终面没过,无关技术,继续加油吧-。-

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴),面试回来之后会发给我一些面试题。有些朋...
    Theriseof阅读 1,940评论 0 21
  • 这是一个雾霾的下午,我来到了美团的办公楼,开始了面试,不知怎么的,来之前,底气有些不足面的越多,就会越知道自己的不...
    时而闹腾阅读 10,821评论 1 17
  • 一面 首先是自我介绍,简单问了一些项目相关的问题。 后面问了一些Java语言相关的问题,但是因为我很久没有用过Ja...
    Gigi9阅读 690评论 0 1
  • 前言 学校组织的面试大赛,当时是被男朋友push着报了个名,没想到最终拿到了美团终面的通道0.0看来有机会还是应该...
    Gigi9阅读 325评论 0 1
  • 感恩旧同事:一个离职一年多的同事前几天告诉我,一个做有机蔬菜的企业,最近在做公益,免费送蔬菜个团体,昨天刚报给他具...
    鲁慧阅读 308评论 0 0

友情链接更多精彩内容