1. IOS面试考察(四):系统基础,网络,操作系统相关问题
1.1 网络原理相关
- 进程和线程的区别
- HTTPS的握手过程
- 什么是中间人攻击?怎么预防
- TCP的握手过程?为什么进行三次握手,四次挥手
- 堆和栈区的区别?谁的占用内存空间大
- 加密算法:对称加密算法和非对称加密算法区别
- 常见的对称加密和非对称加密算法有哪些
- MD5、Sha1、Sha256区别
- charles抓包过程?不使用charles,4G网络如何抓包
1.2 操作系统原理相关
1.3 编译原理相关
1.4 数据结构相关
对于移动开发者来说,一般不会遇到非常难的算法,大多以数据结构为主,笔者列出一些必会的算法,当然有时间了可以去LeetCode上刷刷题
- 八大排序算法
- 栈&队列
- 字符串处理
- 链表
- 二叉树相关操作
- 深搜广搜
- 基本的动态规划题、贪心算法、二分查找
1.5 其他原理性相关
- PerformSelector & NSInvocation优劣对比
- oc怎么实现多继承?怎么面向切面(可以参考Aspects深度解析-iOS面向切面编程)
- 哪些bug会导致崩溃,如何防护崩溃
- 怎么监控崩溃
- app的启动过程(考察LLVM编译过程、静态链接、动态链接、runtime初始化)
- 沙盒目录的每个文件夹划分的作用
- 简述下match-o文件结构
1.6 开发证书相关
- 苹果使用证书的目的是什么
- AppStore安装app时的认证流程
- 开发者怎么在debug模式下把app安装到设备呢