关于okex面试

817 阅读2分钟

2022年的第一面,距离上一次面试差不多三年了。 面试总体时间一个小时,知识点不算偏,都是常考题,主要是围绕oc底层以及项目的问题。

 首先是自我介绍。我只是简单的罗列经历,白的像白开水,这块就对自己不太满意。 接着,让聊聊以往项目中参与度还不错的技术点。这也是一个必考题了,说亮点说贡献。 

项目中使用了flutter,项目介入flutter的背景,是为了解决什么问题?flutter的widget是用什么框架来维护的。用过provider吗?redux呢?如果对flutter掌握不够深,只是写了写页面,慎重考虑简历上体现flutter。

之后问道了关于开发上的问题:

常遇到的crash有哪些?oc的消息转发 包大小的优化? 开发团队有多少人?在团队中扮演的是什么角色? 有了解动态化方案吗?

关于UI的题目: UIButton 的继承链, UIView,CALayer的关系,UIView为什么可以响应事件。 UIController的生命周期。

 多线程的问题: 

属性的修饰符 原子性。有什么弊端吗?ios 10前后都用了什么锁 开发中常用的锁,原理是什么? objc的问题: autoreleasePool数据结构,原理。 不同的线程会共用autoreleasePool么 kvo底层是什么方式来实现的?苹果为什么不是在原理的类的set方法中改? 

 网络上的问题: 

get, post区别,post说比get更安全,安全在哪里了? APNs的推送流程。 

 最后一个:App的启动流程,主要是preMain()

最后问面试官的问题。 我问了面试官他们公司的跨平台方案,动态化方案,团队人数等,另外关于对互联网“卷”的看法。这几个问题也没好好准备,只是随心问了几个问题。面试官很nice,说话很有条例,逻辑很强,知识面也很广。

总体来说面试难度不大,但是自己准备的不够完善,表达不够清晰。而根本的原因还是自己对知识掌握的不够牢固。我知道面试官想问什么,想考察什么,但是说到最核心最重要的时候,很多概念突然就模糊了,这个知识的数据结构是什么,实现原理是什么,为什么这么设计,以及从无都有是怎样的一个流程?究其原因还是知识体系不够牢固的原因,接下来继续整理和练习。