Summary iOS Swift 优化编译时间 open/public等用法 高阶函数 struct与class区别 与oc优缺点 codable 性能优化 包大小 启动时间 卡顿监控 内存 网络优化 tableview优化 电量优化 网络安全优化 APP启动连续闪退检测 开源库 SDWebImage YY MLeaksFinder WCDB 逆向 动 静态分析 包加固 动静态库原理 APP运行过程 为什么crash日志能找到对应方法 底层原理 runtime 方法调用流程 方法交换 crash防护 runloop 几种model 几种源 内部逻辑 runloop应用 autoreleasepool weak block kvo Tagged Pointer arc 多线程 线程安全 几种创建方式的异同 如何高效的使用多线程 其它 MVVM MVC 模块化 自动化构建 响应链 Cocoapods podinstall过程 install_update区别 Native与js交互 H5启动速度优化 离屏渲染 Python 网络 http HTTP方法有哪些 get post 区别 HTTP1.0、1.1、2.0区别 HTTP状态码含义 https 为什么不用http自己加密 HTTPS密钥协商过程 HTTPS 密钥复用 CA证书 HTTPS 中非对称加密的方法比较 tcp 握手挥手过程 头部信息 滑动窗口协议 流量控制 拥塞控制 TCP传输的单个报文最大字节 FAQ TCP要点难点 其它 charles抓包原理和过程 网络分层 算法 排序 冒泡排序 选择排序 插入排序 快排 堆排序 希尔排序 计数排序 桶排序 基数排序- 查找 顺序查找 有序表查找 二叉查找树 线性索引查找 无序数组查找值 二分法 翻转二叉数 算法题 回文数 分糖果 缺失数字 大量数据中最小的N个数 一个数是否在 40 亿个整数中 前 K 个高频元素告诉你桶排序有啥用 删除排序数组中的重复项 位运算 字符串 数据结构 链表 树 树的遍历 哈希表 数组和链表的区别 计算机原理 进程间通信方式 程序编译过程 内存区域的划分 线程相关问题 上下文切换与多线程实现的代价 堆和栈的区别 常用命令