- 1、 iOS为什么必须在主线程操作UI?
- 2、Swift和OC的方法调用流程区别
- 3、iOS性能优化实践:头条抖音如何实现OOM崩溃率下降50%+
- 4、GCD
- 5、runloop
- 6、Weak的实现原理
- 7、Block
- 8、AutoreleasePool
- 9、编译过程
- 10、启动过程
- 11、设计一个线程池、iOS 任务调度器:为 CPU和内存减负
- 12、线程怎么保活
- 13、内存满了之后如何处理
- 14、如何使用 Runtime 给现有的类添加 weak 属性
- 15、加载一个图片经历那些过程
- 16、Performselector方法里到底干了啥
- 17、C++虚函数我们一般哪里有用到啊,还有它开销了什么东西?为啥减少使用能优化启动速度?
- 18、内存缓存优化
- 19、autoreleasepool什么时候释放
- 20、响应链机制
- 21、instrment的Time profilter实现原理原理
- 22、多线程之栅栏函数
- 23、iOS 图像渲染过程、离屏渲染
- 24、iOS 架构模式--浅析MVC, MVP, MVVM 和 VIPER
- 25、iOS面试备战-多线程
- 26、设计模式
- 27、组件化
- 28、组件化采坑
- 29、md5实现原理
- 30、NSTimer不准时
- 31、WKWebVie与JS通信的几种方式
- 32、什么是泛型?Swift的字符串string与OC的NSString差别?对于Swift协议的理解?
- 33、APP启动时长监控
- 34、https相关
- 35、设计一个网络框架
- 36、网络最大并发数
- 37、分类和扩展区别
- 38、load和initializet
- 39、UIView的绘制过程
- 40、layoutSubviews什么时候执行
- 41、iOS-UIView异步绘制
- 42、静态库和动态库的区别?怎么判断一个库是动态库还是静态库
- 43、AutoLayout的原理
- 44、iOS的Category添加 weak 属性
- 45、Runloop
- 46、Runtime
- 47、WKWebView 那些坑
- 48、NSString为用Copy和Strong有什么区别
- 49、isKindOf和isMemberOf的区别,底层实现
- 50、多线程-现有10个上传任务,最大并发数是3,每完成一个任务要告诉用户此时剩余的任务数
- 51、自己实现isEqual方法(hash算法
- 52、透彻理解block中weakSelf和strongSelf
- 53、ios实现读写锁
- 54、UIView Animation的Block谁持有
- 55、watchdog 机制
- 56、什么是依赖注入?
- 57、ARC的原理,引用计数是怎么管理的,weak 关键字的原理
- 58、autoReleasePool的原理 autoReleasePool 的哨兵、自己创建的 @autoReleasePool是怎样运行的,什么对象是autoRelease的
- 59、RunLoop与AutoReleasepool的关系学习
- 60、子线程默认不会开启 Runloop,那出现 Autorelease 对象如何处理?不手动处 理会内存泄漏吗?
- 61、Atomic为什么不安全,怎么实现一个安全的存取、iOS中如何设计多线程的读写安全
- 62、什么是@synchronized
- 63、线程和进程的区别
- 64、对于大图片加载引起的oom问题,怎么处理
- 65、Crash堆栈和符号的对应解析符号化
- 66、IPA包签名原理
- 67、load的详细过程
- 68、卡顿监测原理
- 69、组件化过程中的坑
- 70、Mach-O文件、深入iOS系统底层之程序映像
- 71、深入理解Tagged Pointer
- 72、iOS 的渲染机制以及 UIView 的自动布局流程
- 73、MD5(哈希/摘要算法)、AES和DES(对称加密)、RSA(非对称加密)
- 74、pod install和pod update的区别
- 75、跨平台框架原理
- 76、NSString的内部原理、taggedPointString
- 77、Mian函数启动前的流程,是谁加载的动态库(dyld),runtime在何时加载
- 78、解释一下段⻚式的内存管理,段⻚式虚拟内存的含义是什么,怎么进行换⻚
- 79、KVO存在哪些⻛险
- 80、大批量数据写入数据库怎么做
- 81、从点击屏幕开始,runloop怎么进行工作的
- 82、编译过程
- 83、MVVM、MVC、MVP的区别
- 84、iOS内存管理(MRC、ARC)深入浅出
- 85、APNS
- 86、AFN的二次封装
- 87、聊聊CoreData、FMDB
- 88、多线程相关
- 89、http的header有什么字段?
- 90、TimeProfile的详细使用
- 91、卡顿的形成原因?什么是离屏渲染?
- 92、Rac、SDWebImage、YYKit、AFN的原理
- 93、Js与na交互的原理
- 94、设计一个下载/断点续传框架
- 95、NSCopy/NSCoder
- 96、进程间通信的几种方式
- 97、引用计数为0时,内存会立即释放吗?内存是什么时候释放的?
- 98、iOS 底层 - dealloc 的底层实现
- 99、git merge/rebase
- 100、响应链的应用
- 101、GCD Block会捕获self吗?
- 102、Bounds和Frame的区别,改变Frame的Size会改变Bounds的size吗
- 103、Swift和OC的区别?类和结构体的区别?
- 104、pod install和pod pdate的区别
- 105、哈希冲突问题的解决办法
网络
- 1、http1.0->1.1->2.2->3区别
- 2、HTTP1.1身份认证-摘要认证
- 3、聊聊DNS劫持
- 4、如何保障客户端与服务器交互中的数据安全
- 5、iOS面试备战-网络篇
- 6、在浏览器输入url后发生了什么
- 7、TCP三次握手、四次挥手、https加密原理
- 8、为什么TCP4次挥手时等待为2MSL?
- 9、DNS的搜索过程
- 10、tcp,为什么4次断开,tcp的拥塞机制,为什么这么设计
- 11、TCP/UDP
- 12、图解 | 什么是HTTP简史
- 13、Charles抓包原理
- 14、DNS的查找过程,什么是DNS劫持
- 15、Get和Post
- 16、http的响应状态码
- 17、https抓包过程
算法
- 1、最大子序和
- 2、最大子矩阵
- 3、乘积最大子数组
- 4、爬楼梯
- 5、快速排序
- 6、整数反转
- 7、链表反转
- 8、链表是否循环
- 9、两个有序数组合并
- 10、删除链表的倒数第N个节点
- 11、一个纯数字的字符串,调整顺序使之奇偶排列 “17485” ———>”14785 “
- 12、实现一个LRU算法 不使用数组
- 13、两个view的第一个公共父视图
- 14、两个有序数组的中位数
- 15、字符串的全排列
- 16、二叉树的层级打印 计算层高
- 17、用字符串实现大数加法
- 18、二叉树 红黑树 二叉树的应用,以及数据库的数据结构以及优化
- 19、找出无序数组中所有3个数字加起来是0 的数字(先排序,再双指针)
- 20、最长回文子串
- 21、找出无序数组中所有3个数字加起来是0 的数字
- 22、8000W个字符串,每个长度在100以内,要求找到频率最高的前1000个
- 23、利用栈结构实现队列结构
- 24、验证是否是对称二叉树
- 25、统计所有小于非负整数 n 的质数的数量
- 26、硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。