zoukankan      html  css  js  c++  java
  • 面试题(十五)

    1面

    • Objective C runtime library:Objective C的对象模型,block的底层实现结构,消息发送,消息转发,这些都需要背后C一层的描述,内存管理。
    • Core Data:中多线程中处理大量数据同步时的操作。
    • Multithreading:什么时候处理多线程,几种方式,优缺点。
    • Delegate, Notification,KVO, other 优缺点

    runtime有一点追问,category,method 的实现机制,class的载入过程。 1面整体感觉不错,40分钟不到,感觉回答的还可以。被通知一会儿二面。

    2面

    二面的时间非常长,差不多将近3个小时,直接面到快下班了。1面问的主要是知识点。2面问主要考察的是设计解决方案的能力,另外辅助追问的方式,考察深度和广度,回答过程中需要列出适合的具体例子,方案还需要细致到具体的关键的函数名称,方法。另外考察设计模式的理解,最后还考了算法。因为时间太长,这里记录一些重要的问题。

    1. 设计一个progress bar解决方案,追问到 Core Graphic、CGPath、maskLayer。
    2. 设计一个popup view被追问到 keyWindow、UIWindow的layer、UIView hierarchy。
    3. 从设计模式的角度分析Delegate、Notification、KVO的区别。被追问到自己写的library和开源的项目中用到哪些设计模式,为什么使用,有哪些好处和坏处,现在能否改进。
    4. 算是问题3的追问,设计一个方案来检测KVO的同步异步问题。willChange和 didChange的不同点,然后被追问到有没有其他地方也有类似情况,被追问到Core Data 中falut object。
    5. 这个是问题4的追问,设计一个KVO系统。
    6. Multithreading,什么时候采用Multithreading方案,以及理由。追问到系统还有哪些在后台运行的thread,被追问到view life cycle、iOS6之后的不同以及内存管理。
    7. Multithreading中常常遇到的问题,追问到死锁,优先级翻转,线程池等。
    8. 百度有一个亿级别的APP需要统计用户行为的日志系统。不使用数据库,只是使用普通文件,设计一个系统。被追问到内存映射文件。这个问题本来是服务器的问题,我表示从来没做过,回答很瞎。

    算法考了2个。一个是如何求2个集合的交集。另一个是百亿数据中查找相同的数字以及出现的次数。

    最后还补充了几个小问题

    • 自己对可穿戴设备的感受
    • 自己如果进入这个team,自己准备做那方面的事情
    • 为什么创业,自己未来规划

    一会被告知3面,但是因为太晚,约到次日下午3面。

    3面

    3面的时间和1面差不多40分钟,问了几个问题,主要是考察精神层面的东西。

    • 为什么做Windows Mobile
    • 为什么改iOS
    • 为什么来百度
    • 为什么iPhone 可以成功,那些吸引你
    • 如何看待AppStore 现在的生态圈

    后面就是他说的多一些,介绍团队遇到的困难以及14年团队的打算。最后他给了我2句话的评价,我觉得还是蛮对的。

    • 选择的时候都是经过深思熟虑的
    • 有野心,wanna make a difference

    有意思的是,他说他也wanna make a difference。

    面试通过,我个人觉得2面我的问题在思考设计模式上面少,另外在window hierarchy 上面有不足。设计 KVO 上面在 didChange上面考虑不足。这些都是被当场戳穿的。 有一点疑虑的是整个面试中并没有问到Core Animation。这个还是我蛮喜欢的部分。Anyway 个人很喜欢追问的方式,很容易考察出来理解的深度和广度。

    整个面试收获很大,发现了很多不足。另外1,2面的面试题目个人觉得也不错。这里分享给大家。

  • 相关阅读:
    用Python完成一个汇率转换器
    鸿蒙如何用JS开发智能手表App
    鸿蒙如何用JS开发智能手表App
    SAP Spartacus SplitViewComponent Migration 的一个具体例子
    SAP Spartacus B2B 页面 Popover Component 的条件显示逻辑
    SAP Spartacus 升级时关于 schematics 的更新
    SAP Spartacus B2B 页面 Disable 按钮的显示原理
    SAP Spartacus B2B 页面 Disable Confirmation 对话框的显示原理
    通过 Feature Level 动态控制 SAP Spartacus 的页面显示
    SAP Commerce Cloud Build Manifest Components
  • 原文地址:https://www.cnblogs.com/shidaying/p/4991649.html
Copyright © 2011-2022 走看看