C++相关
- 多态的理解
- 虚函数、虚函数表
- 声明数组大小超过内存大小会怎样
- int a[5]; cout << a[5] << endl; 会有什么结果
- int a[5]; a[5] = 1; 会有什么结果
- 内存泄露是什么,如何排查问题及解决
- 浅拷贝与深拷贝
- 知道哪些设计模式
- map 底层采用什么数据结构
- map 和 unorder_map 的区别
操作系统
- 进程间通信
- 进程、线程区别
- 进程调度算法
- 协程是什么
- IO多路复用
- 一个exe文件包含什么内容
- 虚拟内存
- 零拷贝
- 栈和堆的区别
计算机网络
- 三次握手、四次挥手
- TCP如何保证通信的可靠性
- 等多久对触发超时重传
- 具体讲讲拥塞控制
- time wait的2MSL有什么用
- time wait状态过多有什么问题
- 用过Linux吗,网络是怎么配置的,讲讲DHCP
- 输入URL后发生了什么
- HTTP和HTTP的区别
- Session和Cookie的区别
- Get和Post的区别
- ping用的什么协议,具体讲讲ICMP
- TCP和UDP的区别
- 粘包问题怎么解决
数据库
- 用过什么索引
- 讲讲最左前缀原则
- 聚簇索引和非聚簇索引的区别
- 索引采用的数据结构
- InnoDB和Myisam的区别
- 事务的特性,有哪些隔离级别
算法
- 关键词分割字符串
- Top K问题
- 判断是否是镜像二叉树
- 使链表偶数位结点在前,奇数位结点在后(如 1 -> 2 -> 3 -> 4 -> 5 变成 2 -> 4 -> 1 -> 3 -> 5)
- 跳台阶
- 最小编辑距离
- 判断4个数字是否满足24点
- 只由1、0、-1组成的数组,使全部的1在数组最前、全部的-1在数组最后(在原数组上修改)
- 反转链表
- 为什么二分查找时间复杂度是log2n,怎么算的
- 合并能合并的数组,如 [[1, 2], [4, 6], [5, 8]] 合并为 [[1, 2], [4, 8]]
- 判断int32的数字是否是回文数(1. 考虑负数; 2. 考虑溢出问题)
- 1~n中k出现了几次(n为正整数,k为[0, 9])(两种题型,如题型1:55中5只算出现了一次;题型2:55中5出现了2次)
总结
本人感觉仅仅是对数据结构和算法感兴趣,操作系统、计算机网络、数据库深入问就懵逼,多线程、网络编程、各种锁、分布式一问就说不会……(不要笑本菜 )虽然面试是以战养战的过程,但是面试间隔时很焦虑,来不及将薄弱的环节一一补齐,甚是惭愧
个人觉得面试时实力运气五五开。
有些面试官问的问题比较刁钻,你不会什么就问什么,最终得出你到头来什么都不会的结论,
而有些面试官没有固定套路,沿着你自我介绍里阐述的擅长的部分慢慢钻研探讨,主要考察你一点一滴的思考,想出怎样的结果反而是次要的;
有些问题你不了解,你在提前告知的时候作出自己觉得相对合理的猜测,有些面试官会因为是你瞎编的得出一个负面印象,
有些面试官会因为你和其他知识点有联系思考会微笑点头;
有些面试官在回答你提出的疑问时漫不经心草草带过一看就是刷KPI,
有些面试官在时间相对紧迫的时候还提出你的不足,结合面试官自己的经历给出谆谆教诲,勉励你抓紧当下想学什么就去学……
总而言之,一次面试代表不了什么,但是你在这次面试中查漏补缺了多少以及心理素质提升了多少会影响你的下一次面试。
本菜 还有多线程、网络编程、各种锁、分布式等等诸多知识短板;校招不是终点,生活还得继续,未来还可能会有跳槽,还有若干次社招,借用我偶像借用博尔赫斯的一句话:
生活是苦难的,我又划着我的断浆出发了。
最后推荐个我的iOS交流群:642363427有一个共同的圈子很重要,结识人脉!里面都是iOS开发,全栈发展,欢迎入驻,共同进步!(群内会免费提供一些群主收藏的免费学习书籍资料以及整理好的几百道面试题和答案文档!)