前言
收录的面试技术点,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家底部留言。主要记录一下大厂技术点,希望能帮助到正在面试或者将要面试的伙伴吧。
46个面试技术题:
-
- 第一个问题:怎么优化应用启动时间。
-
- category,method 的实现机制,class的载入过程。
-
- runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop吗?子线程呢?
-
- 如何保证线程安全?死锁是如何产生的?
-
- 线程之间是如何共享资源的?
-
- 进程之间如何共享资源。
-
- 定时器的几个类方法底层分别是怎么实现的?
-
- 从设计模式的角度分析Delegate、Notification、KVO的区别。
-
- Struct与Union主要区别
-
- plist读写操作如何进行锁管理
-
- NSNotification实现逻辑,子线程中给主线程发送通知,主线程是否会处理通知.
-
- 编译器怎么检测#import和#include导入多次的问题,三方库导入时如何设置""和<>
-
- 多线程:什么时候处理多线程,几种方式,优缺点。
-
- 设计一个方案来检测KVO的同步异步问题
-
- willChange和 didChange的不同点
-
- 如何令自己所写的对象具有拷贝功能?
-
- 谈一谈对mrc和arc的理解
-
- 谈谈对自动释放池的理解
-
- 自动释放池在mrc和arc区别
-
- 多层自动释放池嵌套的对象在哪一层释放
-
- 谈谈对于block理解,mrc和arc下有什么区别。
-
- TCP和UDP的应用场景与区别?
-
- TCP握手为什么是三次?TCP挥手为啥是四次呢?
-
- TCP的拥塞控制?
-
- socket编程里面,select、poll、epoll的区别和特点?
-
- client和server之间TCP通信,双方使用到的socket函数以及过程?
-
- HTTP和HTTPS的区别?
-
- TLS的加密过程?
-
- TLS握手的过程?
-
- TLS握手时的随机数有什么作用?
-
- 说说你理解weak属性?
-
- UIView和CALayer是什么关系?
-
- @synthesize 和 @dynamic 分别有什么作用?
-
- 动态绑定。
-
- Category(类别)、 Extension(扩展)和继承的区别。
-
- 为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别?
-
- id和NSObject*的区别。
-
- 如何令自己所写的对象具有拷贝功能?
-
- 使用系统的某些block api(如UIView的block版本写动画时),是否也考虑引用循环问题?
-
- static有什么作用?
-
- Swift 下的如何使用 KVC?
-
- Swift有哪些模式匹配?
-
- objc在向一个对象发送消息时,发生了什么?
-
- 静态库的原理是什么?你有没有自己写过静态编译库,遇到了哪些问题?
-
- 不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个vc的viewDidLoad中创建)
-
- OC完整的消息转发机制+代码实现
更多iOS面试题合集:
|