一面
1、Objective C runtime library:Objective C的对象模型,block的底层实现结构,消息发送,消息转发,这些都需要背后C一层的描述,内存管理。
2、Core Data:中多线程中处理大量数据同步时的操作。
3、Multithreading:什么时候处理多线程,几种方式,优缺点。
4、Delegate, Notification,KVO, other 优缺点
5、runtime有一点追问,category,method 的实现机制,class的载入过程。
1面整体感觉不错,40分钟不到,感觉回答的还可以。被通知一会儿二面。
二面
1、设计一个progress bar解决方案,追问到 Core Graphic、CGPath、maskLayer。
2、设计一个popup view被追问到 keyWindow、UIWindow的layer、UIView hierarchy。
3、从设计模式的角度分析Delegate、Notification、KVO的区别。
4、自己写的library和开源的项目中用到哪些设计模式,为什么使用,有哪些好处和坏处,现在能否改进。
5、设计一个方案来检测KVO的同步异步问题。
6、willChange和 didChange的不同点,有没有其他地方也有类似情况,然后被追问到Core Data 中***t object。
7、设计一个KVO系统。
8、Multithreading,什么时候采用Multithreading方案,以及理由。
9、系统还有哪些在后台运行的thread。
10、view life cycle、iOS6之后的不同以及内存管理。
11、Multithreading中常常遇到的问题,追问到死锁,优先级翻转,线程池等。
12、百度有一个亿级别的APP需要统计用户行为的日志系统。不使用数据库,只是使用普通文件,设计一个系统。被追问到内存映射文件。
13、算法考了3个。一个是如何求2个集合的交集。一个是百亿数据中查找相同的数字以及出现的次数。还有一个是牛客题霸上的原题,大家可以去看看:NC78 反转链表
14、自己对可穿戴设备的感受
15、自己如果进入这个team,自己准备做那方面的事情
16、自己未来规划
三面
3面的时间和1面差不多40分钟,问了几个问题,主要是考察精神层面的东西。
1、为什么做Windows Mobile
2、为什么来百度
3、你认为为什么iPhone 可以成功,哪些点吸引你?
4、如何看待AppStore 现在的生态圈
5、后面就是他说的多一些,介绍团队遇到的困难以及14年团队的打算。
全部评论
(1) 回帖