美团面试题 记录

做个记录,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 上解决过的问题,读过的开源框架,读过的书,业余兴趣,最有成就感的事情。

你可能感兴趣的:(美团面试题 记录)