这里主要介绍腾讯视频面试的一些总结, 本人面试的是腾讯北京OMG事业群, 也就是腾讯视频, 面试岗位是iOS开发工程师, 这里大致总结一些视频面试被问到的知识点
大致问到了以下三类问题:
iOS相关问题
数据结构和算法
网络
以下大致介绍一下:
1.iOS中的消息传递, 包括delegate, notification, block等的区别, 详细的介绍
2.notification在哪里取消, 为什么要取消? 会有什么影响?
3.多个线程之间可以通过notification传递消息吗?(notification和多线程问题)
4.iOS开发和android开发, mac开发哪里不同? 有什么好的地方? 为什么好?
5.nonatomic, weak的使用, 什么时候使用atomic?
6.进程和线程的区别?
7.iOS数据存储方式有哪几种?
8.多线程访问数据读和写问题?(读写同步, 加锁)
9.iOS中循环引用问题, 怎么避免?
10.coreData有哪些问题?
11.自己做的项目中遇到什么难题? 怎么解决的?
12.OC语言最好的地方是哪里?
13.synthesize和dynamic的区别, 用法?
iOS相关的大致就这一些, 有些小问题记不太清楚了.
1.10亿个数中取出最大的10个, 时间复杂度, 怎么优化? 有没有更快的解决方案?
(这是一个很经典的数据结构问题, 答案也很容易, 但是面试官要你进一步优化, 怎么更快?)
2.排序算法知道哪些? 有什么区别? 那些是稳定的? 时间复杂度?
3.二叉完全树的使用情况?
数据结构的问题问的不多, 有可能是我这一块比较薄弱, 面试官就没有进一步深入提问了.
1.QQ发送消息, 具体的传输过程, 有哪几层?
2.路由器处在哪一层, 具体什么作用, 为什么?
3.DNS介绍(这个我不太了解, 就直接跳过了)
总的来说, 本次面试被虐了快一个小时, 虽然已经是第三面了, 但感觉这一次才是真正的技术面试,问的都是技术要点, 有些真的不了解, 这里大致总结一些.
还有一个小建议: 那就是基础知识一定要扎实, 后来面试官也给我提到了这一点, 特别是数据结构, 算法, 计算机网络, 然后思维一定要开阔, 能够提供新的解决方法, 这几点真的很重要, 希望对大家有帮助.