关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的伙伴吧。
- 一面
1、 了解iOS的内存管理吗?
2、具体说一下循环强引用,可以吗?
3、说一下弱引用的是怎么实现的?
4、APP内通信的方式有什么?
5、说一下delegate是怎么通信的
6、了解设计模式吗?说下iOS上的MVC模式?
7、Model是怎么跟Controller通信的,Model跟View呢,View改变了怎么通知到Controller?
8、了解iOS上的多线程吗?具体说说
9、GCD和Operation的比较,有用过其中的一种么?
10、iOS上怎么保证线程安全?
11、进程和线程有什么区别?
12、iOS上怎么响应事件的,子view超出父view范围怎么响应,怎么实现子view和父view响应同一事件,父view关闭响应了,子view还能响应么?
- 二面
1、项目用的是HTTPS吗?说一下HTTPS的过程
2、了解非对称加密原理吗?比如RSA算法
3、说一下TCP建立连接的过程
4、了解ARC么,什么时候会出现循环强引用问题?引用计数为0的引用实例是立即回收么?
5、了解autoreleasepool么,作用和使用场景是什么?内部声明的变量在什么时候释放?
6、对于runloop,你觉得定时器的时间是准确的吗?
7、了解过红黑树吗?能说下红黑树的原理吗?
8、手写算法:求一个二叉树的最大深度,该二叉树不确定是不是红黑树
9、改一下算法,写成判断所有路径的长度是不是一样的
10、算法场景题:假设有一亿个视频,视频播放量已经离线保存到后台了,现在想根据播放量找出前一百个显示出来,
- 怎么做?
- 用快排么?具体思路是怎样的?
- 用堆排序?具体过程是怎样的?
- 分析一下时间复杂度,以及你认为实际用的时间应该是多少?
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。