前言:
2022年了,提前祝福大家新年快乐! 在这美丽的春节之际,祝福朋友在新的一年里,天天都有份好心情!点赞的人都和我一起暴富了哟
为此也准备了一些面试题为明年跳槽准备,网上都是以前的面试题乱七八糟的总结,我收集的是面试者反馈给我的真题大家能学习下(面试公司不方便透入)
答案详见文末,都是面试真题,希望大家收藏下
一、组件化、架构
1、 CTMediator
2、. 公司有多个项目启动, 如何让接入的组件效率提升? (不局限于iOS, 要讲前后端配合的方案, 偏重量级的方案)
3、. 如果你做的是一个超级 APP (微信、淘宝), 里面有一个引擎可以运行不同的小程序, 你如何设计保证小程序之间的安全性?
4、 介绍一下你们APP的架构设计
二、TCP/IP协议
1、 HTTP、HTTPS 区别?
2、GET、POST 请求的 cache 怎么做,几级缓存? 着重讲本地缓存? 缓存有效期怎么做的?内部缓存机制的优化机制?如何防止内存、磁盘的缓存爆掉?
3、 HTTP 请求方法种类有哪些?(别忘记HEAD)
4、 TCP流量控制
5、HTTPS的握手过程
6、 HTTPS与HTTP的区别? 非对称加密、对称加密都是在哪一个步骤?
7、 DNS、工作在什么层、默认端口?
8、 Ping原理
9、证书信息相关
三、Runloop
1、 RunLoop 的本质是什么?
2、 Runloop和线程是什么关系?
3、 Runloop的底层数据结构是什么样的?有几种 运行模式(mode)?每个运行模式下面的 CFRunloopMode 是哪些?他们分别是什么职责?
4、 Runloop 的监听状态有哪几种?
5、 Runloop 的工作流程大概是什么样的?
6、 Runloop 有哪些应用?
7、 Source0, Source1
四、响应链
1、 app如何接收到触摸事件的
2、响应链: 如果 Swizzle 了 父 View 的 touchBegin 的方法, 会对子 View 造成什么影响?
3、两个按钮同时响应
4、UIbutton继承链,UIControl UIresponder区别
5、hit-test 和 point inside 的区别
五、架构、语言栈
1、 你认为c++、与大前端相关的语言,比如objc、swfit、js相比它的优缺点?
2、 32位系统和64位系统的本质区别是什么?
3、 APP 架构师对什么指标比较关心?
六、SDK设计
1、讲一下组件化/SDK中的接口设计规范有哪些?(比如: API break change 升级常见、预留字段、)
2、 自己做SDK 如何解决与接入方的SDK 版本冲突?(考虑包大小、研发人力、维护成本)
3、 组件化/SDK 怎么分层的、怎么封装的?如何协调不通部门的人去共享你的组件/SDK?(参数上下文、接口设计高度抽象)
4、单例多Delegate怎么设计的?NSMapTable
七、二叉树、排序
1、 堆的数据结构
2、 二叉搜索树的作用
3、 层序遍历也叫什么遍历,怎么实现
4、二叉树中增加节点
5、堆排序、归并排序、快排原理,优缺点
6、 排序算法, 字母和数字排序, 字母优先级高于数字: abc123.
7、 二叉树反转, 数组形式
七、线程、队列、锁
1、线程、队列的关系? 一个线程是否可能存在于两个队列?
2、 队列一定会创建线程吗?
3、队列是否可以无限制创建?
4、 PerformSelector & NSInvocation优劣对比*
5、 gcd 的使用,能不能取消?
6、如何进行线程保活
7、编程题 3个线程顺序打印 0-100
答案详见:docs.qq.com/doc/DVWlQam9Qd3B1cEF2
希望自己能有目标有计划地准备面试,后面我会逐个复习一下相应的内容
- 更多技术题合集: