社招C++后台面试-拿到offer
之前在一家小公司上班,主要是做C语言的嵌入式软件开发,涉及过一点点C++。工作大概三年,然后去试试大公司,这个面试题是我拿到offer后4个月才拖拖拉拉的开始写,题目大概记得,但是自己怎么回答的忘记了。
一面-视频面试
- 栈和堆的区别,怎么解决栈的溢出问题
- #define的作用,有什么具体用法,在编译中会怎么样
- 大小端转换
- 同步和异步的区别
- 内存池的了解
- STL中map和hashmap的区别,使用场合,hash建立需要注意什么
- 传输过程中文件完整性的判断。为什么使用md5,可不可以用文件大小判断
这个映象比较深,因为上家公司在下载软件版本升级的时候是先连接了安全网关的情况下,也就是默认下载环境是安全的情况下如何判断。
之前是使用了md5校验,但是被问到在安全的情况下,直接判断文件大小是不是可以用文件大小判断。 - 讲了下交叉编译和调试方式
- mips和mipsel的区别,el是什么意思
- 剩下就是http的常规问题了,3次握手和4次挥手,没有什么特别的了。
- 数据库的使用,因为只使用过sqlite3,被问到为什么要使用sqlite3,用文本存储不行吗。
二面-视频面-手撕代码-摄像头对着本子写
- 字符串中找不含重复字符的最长字串的长度
eg: abcdddabc -> 4 - 字符串中找最大重复字串
eg: abcdddabc -> abc - 峰值元素是指其大于左右两边相邻的元素。找峰值元素的下标
[1,2,3,1], 峰值元素为3,输出2 - 给定一个数组,将数组元素向右移K个位置,k>=0
eg:[1,2,2,3,4,5] k=2 -> [4,5,1,2,2,3] - 实现一个单例类
- 互联网和传统行业的区别
三面-现场
主要是聊你的项目,主要是为什么做这个项目,你这样做这个功能的目的是什么,带来了什么效果
四面
主要聊了下你对互联网的看法