虎牙最新 iOS 面试真题总结(含 ARC、RunLoop、多线程、网络等)
本文汇总了虎牙 iOS 面试中遇到的最新真题,涵盖项目架构、内存管理、锁机制、网络协议、多线程、视频技术等多个核心模块,适合准备大厂 iOS 岗位的同学参考学习。
面试说明
由于时间有限,本文主要记录真题与核心知识点,未提供全部详细答案。欢迎交流和补充。
一面题目(项目架构+底层原理+锁)
项目架构是自己设计的吗?请介绍一下
FPS(帧率)是怎么计算的?
除了 CADisplayLink,还有哪些计算 FPS 的方法?
KVO(键值观察)是如何实现的?
Leaks 是怎么实现的?
如何通过代码监听僵尸对象?
imageWithName
方法什么时候发生图片解码?在哪个线程?isa
指针里面包含哪些信息?Objective-C 消息发送和消息转发的流程?
函数的参数是如何存储的?
OC 空函数里面有参数吗?
参数存储在栈还是寄存器?
红黑树查找的时间复杂度?
NSDictionary 是如何实现的?
iOS 中常见的锁有哪些?
如何实现
dispatch_once
?需要考虑哪些问题?同一线程里连续使用两个
@synchronized
,是递归锁还是非递归锁?如何增加按钮的点击范围?
二面题目(内存管理+消息机制+网络协议)
ARC(自动引用计数)原理介绍
autoreleasepool
的作用及使用场景autoreleasepool
中的对象什么时候释放?消息转发可以用来做什么?
RunLoop 是什么?你用 RunLoop 做过什么?
C++ 多态和虚函数表机制
TCP 如何保证数据传输的完整性?
TCP 为什么需要三次握手?
HTTP 和 HTTPS 全程都是非对称加密吗?
面对乱序数据,你如何设计排序方案?
对 RxSwift 的看法,实际项目中用过吗?
三面题目(对象内存+网络+多线程+视频)
iOS 对象指针大小是多少?
对象分配是在堆还是栈?
HTTP 请求如何区分 Header 和 Body?
多线程能否同时访问同一个对象?多进程呢?
视频中的 PTS 和 DTS 是什么?
视频丢帧时,是丢 PTS 好还是丢 DTS 好?
iOS 各种锁的性能如何?锁的粒度是毫秒还是微秒级别?
HTTP 请求是异步还是同步?
你怎么看待 React Native 和 Flutter?
核心知识点总结
主题 | 关键内容 |
---|---|
项目架构 | MVC/MVVM、模块化设计、性能优化 |
FPS计算 | CADisplayLink、Core Animation |
KVO实现 | isa-swizzling、消息转发 |
内存管理 | ARC、自动释放池、引用计数 |
锁机制 | OSSpinLock、NSLock、pthread_mutex |
RunLoop | 事件监听、模式切换、定时器管理 |
网络协议 | HTTP/HTTPS、TCP三次握手、数据完整性 |
多线程 | GCD、NSOperation、线程安全 |
视频技术 | PTS/DTS、丢帧策略 |
跨平台框架 | React Native 与 Flutter 对比 |
参考建议
- 重点掌握底层原理,尤其是内存管理与锁机制
- 熟悉网络通信协议及传输安全机制
- 理解多线程同步与死锁问题
- 视频相关基础理论及实践经验
- 对跨平台方案有基本认知和评价能力
欢迎大家点赞收藏,有任何问题或经验分享,欢迎留言交流!
祝你面试顺利,早日拿下心仪的 iOS 岗位!
虎牙最新 iOS 面试真题总结(含 ARC、RunLoop、多线程、网络等)