总结面试题有感
# 有感一: 知其然,知其所以然
先介绍一下面试中觉得比较吃力的问题: 如果让你实现属性的weak,如何实现的? 如果让你来实现属性的atomic,如何实现? KVO为什么要创建一个子类来实现? 类结构体的组成,isa指针指向了什么?(这里应该将元类和根元类也说一下) RunLoop有几种事件源?有几种模式? 方法列表的数据结构是什么? 分类是如何实现的?它为什么会覆盖掉原来的方法?
这次面试让我深刻意识到了两点:
对于每个设计,不能只停留在“会用”而已,应该理解它的实现机制,而且几乎每个设计都是与数据结构息息相关的,理解了数据结构和指针会有助于理解这些设计。 了解设计的原理之后,还要知其所以然:为什么这么设计?最好还要知道这个设计存在什么缺陷,这个缺陷是哪个解决类似问题的设计所没有的? 第一点是“how”的问题,第二点是“why”的问题,然而我相信有不少人只停留在“what”和“using”上。
在面试的时候,我强烈感受到了面试官的功力之深:给我的感觉,对他而言,几乎所有的设计都可以用某种数据结构解释出来(有的时候也会结合指针),对知识点理解得非常透彻:即便是很简单知识点,也能说出很多深层次的东西来。而我自己只是刚开始学数据结构不久,在面对提到数据结构的问题几乎是没有思路的。
编辑 (opens new window)
上次更新: 2024/10/23, 23:26:17