当前位置: 首页 > 科技观察

探秘百度移动面试iOS试题分享

时间:2023-03-17 17:16:43 科技观察

百度移动云穿戴部的面试心得,面试官很热情友好,上来的时候还蛮尴尬的。记录下我的面试过程吧,因为我面试经验确实不多,所以需要总结一下。1ObjectiveC运行时库:ObjectiveC的对象模型,block、消息发送、消息转发的底层实现结构,都需要背后C层的描述和内存管理。CoreData:多线程处理大量数据同步时的操作。多线程:什么时候处理多线程,几种方式,优缺点。Delegate、Notification、KVO、其他runtime的优缺点有点疑问,类别、方法实现机制、类加载过程。第一面总体感觉不错,不到40分钟,感觉答题还可以。两边被通知一会儿。两次面试的时间间隔很长,差不多3个小时,快到下班时间了。第一个问题主要是知识点。2面题主要考查设计方案的能力。此外,辅助提问的方法、调查的深度和广度,在回答过程中需要列举适当的具体例子,解决方案需要详细到具体的关键函数名称和方法。除了考察对设计模式的理解,***还考了算法。由于时间太长,一些重要的问题记录在这里。设计一个进度条方案,问CoreGraphic、CGPath、maskLayer。设计弹出视图之后是keyWindow、UIWindow层和UIView层次结构。从设计模式的角度分析Delegate、Notification、KVO的区别。问我在我写的库和开源项目中使用了哪些设计模式,为什么使用它们,有什么优点和缺点,现在是否可以改进。是问题3的后续,设计了一个方案来检测KVO的同步和异步问题。willChange和didChange的区别,然后问其他地方有没有类似的情况,被问到CoreData中的falut对象。这是问题4的后续问题,设计KVO系统。多线程,何时使用多线程解决方案,以及为什么。问了系统后台运行的其他线程,问了view生命周期,iOS6之后的区别,内存管理。多线程中经常遇到的问题,比如死锁、优先级倒置、线程池等。百度有一个亿级APP需要统计用户行为日志系统。设计一个系统而不使用数据库,只使用普通文件。被要求提供内存映射文件。这个问题本来是服务器的问题。我说我没做过,回答很盲目。有2个算法测试。一个是如何找到两个集合的交集。另一种是在百亿数据中找到相同的数和出现的次数。***我还补充了一些关于我对可穿戴设备的感受的小问题。如果我进入这个团队,我愿意这样做。第二天下午三点。与一侧相比,3侧和3侧的时间约为40分钟。问了几个问题,主要是考察属灵方面的问题。为什么WindowsMobile,为什么转iOS,为什么来百度,为什么iPhone能成功,那些吸引你的东西,你如何看待现在的AppStore生态?之后他又说了很多,介绍了团队遇到的困难和团队2014年的计划。***他给了我2句话的评价,我觉得很对。这个选择是经过深思熟虑并且雄心勃勃的,想有所作为有趣的是,他说他也想有所作为。整体总结起来还是挺尴尬的。几乎所有的知识点都是1、2年前积累的,13年基本没有什么积累。它们都是虚构的东西。2面还不错,暴露了很多问题,设计模式的部分几乎没有概念。***我通过了面试。我个人认为我第二面的问题对设计模式的思考比较少,在窗口层级上有不足。设计KVO没有充分考虑didChange。这些都当场暴露了。有点疑惑的是整个面试都没有问CoreAnimation。这仍然是我最喜欢的部分。反正我个人喜欢提问的方式,很容易考察理解的深度和广度。整个面试收获很多,也发现了很多不足。另外个人觉得1面2面的面试题还不错。在这里分享给大家。