研发工程师面经(C++)
阿里巴巴—研发工程师C/C++(一面挂)
1. malloc和new的区别
2. vector和list的区别
3. C++如何实现多态,虚函数机制、虚指针、父类析构函数如果为非虚函数会有什么后果
4. 重载和覆盖有啥区别
5. 多线程编程
6. 网络编程
7. C++设计模式
8. Redis
9. 冒泡排序
thoughtworks—软件开发工程师(offer)
1. 线上作业添加需求,然后现场编码演示
2. 自我介绍,项目介绍
3. 深入介绍一个项目
猿辅导——客户端开发工程师(二面挂)
1. 手撕代码: 二叉树层次遍历并按行输出
2. 手撕代码:将双向链表按奇偶结点分开,形成两个链表并返回
3. 手撕代码:有序数组二分查找,返回查找元素最后一次出现的位置,若不存在则返回-1
4. C++关键字static
5. 虚函数,虚函数调用细节,指针、引用、对象
6. 指针和引用的区别,引用使用sizeof的值是多少,引用本身是否占据空间
贝壳找房—C++研发工程师(一面挂)
1. 如何计算一个包含重复元素的数组中不同元素的个数,[1,1,2,3,4,4,5]返回5
2. Tcp三次握手、四次挥手,为什么连接需要三次,断开却要四次
3. 进程和线程的区别,进程通信方式,线程通信方式
4. C++中如何实现内存管理
一点资讯—服务端开发工程师(offer)
1. C++智能指针如何解决内存泄露问题
2. TCP的拥塞控制机制
3. TCP的三次握手、四次挥手、为什么连接需要三次,断开需要四次,每个过程的状态都是怎样的
4. 常见web安全问题,SQL注入、XSS、CSRF,基本原理以及如何防御
5. 各种语言的应用场景,如python的应用场景
6. 类型严格与非类型严格的优缺点
7. Linux硬链接和软连接的区别
8. Mysql如何实现快速查找,索引,索引的实现,提高效率的原因
9. 编程:判断一棵二叉树是否是平衡二叉树
10. 编程:二叉树的广度优先搜索遍历
11. 编程:顺时针打印矩阵
12. 如何利用快排对一个单链表进行排序