在小公司呆啦三个月之后,最后由于某种原因离开了,但是最公司的氛围确实很不错的,然后各种大神,反正在公司这段时间,基本都是被虐过来的,毕竟他们都是从BAT跳过来的,额。。说了这么多废话,其实就是想说,实习是可以学到很多东西的.在工作之余,我基本都没有在玩,周末回去图书馆学习,补上落下太多的知识,然后从刚开始实习到现在,面了几家,大大小小的公司都有,被虐了后就沉迷于学习中,刷了剑指offer,leetcode。。各种基础,最后幸运的拿到了新浪、搜狗、乐视的offer。
面试题大体上都是数据结构、算法、操作系统、编译原理、网络和iOS基本知识点
算法
1.自己写一个算法,去重(比如:144257836236)
2.一个数组的逆序对
3.翻转链表,链表的倒数第k个节点,判断链表是否有环,链表的中间节点。。。
4.数组中连续和相等的对数
5.把数组中的奇偶数分开
6.字符串的逆序 (I am a Student. -> Student a am I)
7.kmp算法至少也要了解
数据结构
基本排序
1.至少能够写出归并排序、快速排序、堆排序、冒泡排序,并熟悉各种排序的最好时间复杂度和最坏时间复杂度,以及空间复杂度.
2.二叉排序树,AVL树,红黑树,B+树以及图
LZ 在面试的时候就被问到了数据库索引的原理,为什么B+树的磁盘查找效率要高,而红黑树要低,需要分析和对比其中的区别和原理
iOS基础
1.SDWebImage 的实现原理以及使用时内部的流程,如果让你实现一个这样的库应该怎么入手以及使用什么数据结构
2.AFNetworking 的实现原理,内部使用的是什么,NSURLConnection内部使用的是什么,ASIHTTP 是基于什么开发的
3.Block的数据结构,以及有哪几种block,然后block属性使用什么关键字,为什么在block中全局变量、静态变量可以直接改变外部的值,而自动变量不可以
4.集合set的实现原理,有序set的实现原理
5.NSString 为什么需要用copy关键字,用strong就不可以么?
6.KVO的实现原理和缺陷?
7.Runtime中的优化?
8.GCD和NSOperation的区别?
9.子线程里面,需要加autoreleasepool吗?
10.autorelease对象什么时候释放
11.哪几种情况会造成内存泄露?
12.断点续传怎么实现?需要设置什么?
13.HTTP请求过程?
14.如果你写一个工具检测循环引用,该怎么考虑,用到什么数据结构(其实就是有向图查找环的过程)
15.使用`imageNamed:`方法显示图片,图片什么时候会释放?
之后就会问项目,比如你觉得在项目中遇到的最大难题是什么,是如何解决的,你在项目中出于什么角色,为什么你不开发安卓而是iOS。。。。
编译原理
1.已知A、B在C之后编译,如何知道三者的编译顺序
2.方法调用是在什么地方
还有几个。。。但是不太记得了 = =
额。。大概记得这么多了,最后还是要说基础很重要。。。LZ 不是计算机系的,所以很多东西大学都没接触到,都需要自己学,大家一起加油吧~~~!!!
本文作者:
Aeron_Xie
最后更新: 2023年03月26日 16:46:40
本文链接: http://aeronxie.github.io/post/6c7694ae.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!
最后更新: 2023年03月26日 16:46:40
本文链接: http://aeronxie.github.io/post/6c7694ae.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!